mirror of
https://github.com/lupyuen/lupyuen.github.io.git
synced 2025-01-13 12:38:31 +08:00
Remove preview images
This commit is contained in:
parent
6892fb69e6
commit
e5db6063e5
8 changed files with 89 additions and 1417 deletions
|
@ -107,18 +107,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/n1.png" /></p>
|
||||
|
||||
|
||||
<div class="dq dr ds dt ak">
|
||||
<div class="dz r ds ea">
|
||||
<div class="eb r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/60/1*sqHQVxWsmoA7_PW7j9_GJQ.png?q=20"
|
||||
width="2733" height="1166" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="2733" height="1166" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/5466/1*sqHQVxWsmoA7_PW7j9_GJQ.png"
|
||||
width="2733" height="1166" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
</div>
|
||||
<div class="n p">
|
||||
|
@ -321,18 +310,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/n2.png" /></p>
|
||||
|
||||
|
||||
<div class="dq dr ds dt ak">
|
||||
<div class="dz r ds ea">
|
||||
<div class="jl r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/60/1*zZ6x5ANl91EJ98jl-Pr2NQ.png?q=20"
|
||||
width="11378" height="3268" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="11378" height="3268" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/22756/1*zZ6x5ANl91EJ98jl-Pr2NQ.png"
|
||||
width="11378" height="3268" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="cd fk jm jn hv dc da db jo jp by fj">Blue Pill Memory Layout</figcaption>
|
||||
</figure>
|
||||
</div>
|
||||
|
@ -374,20 +352,7 @@
|
|||
|
||||
<p><img src="https://lupyuen.github.io/images/legacy2/n3.png" /></p>
|
||||
|
||||
<div class="dq dr ds dt ak">
|
||||
<div class="da db ka">
|
||||
<div class="dz r ds ea">
|
||||
<div class="kb r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/60/1*uP8-cYDUC9muFv5OK6ck3Q.png?q=20"
|
||||
width="6734" height="3268" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="6734" height="3268" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/13468/1*uP8-cYDUC9muFv5OK6ck3Q.png"
|
||||
width="6734" height="3268" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="cd fk jm jn hv dc da db jo jp by fj">Blue Pill ROM, containing the Text Section and
|
||||
the Data Section</figcaption>
|
||||
</figure>
|
||||
|
@ -409,20 +374,7 @@
|
|||
|
||||
<p><img src="https://lupyuen.github.io/images/legacy2/n4.png" /></p>
|
||||
|
||||
<div class="dq dr ds dt ak">
|
||||
<div class="da db kc">
|
||||
<div class="dz r ds ea">
|
||||
<div class="kd r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/60/1*ak8ZheQTXliNBL4wrLpTUw.png?q=20"
|
||||
width="4654" height="3268" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="4654" height="3268" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/9308/1*ak8ZheQTXliNBL4wrLpTUw.png"
|
||||
width="4654" height="3268" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="cd fk jm jn hv dc da db jo jp by fj">Blue Pill RAM, containing the Data Section,
|
||||
BSS Section, Heap and Stack</figcaption>
|
||||
</figure>
|
||||
|
@ -472,20 +424,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/n5.png" /></p>
|
||||
|
||||
|
||||
<div class="dq dr ds dt ak">
|
||||
<div class="da db ke">
|
||||
<div class="dz r ds ea">
|
||||
<div class="kr r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/60/1*VKO8I09cGPX_A7t-4vKi_A.png?q=20"
|
||||
width="2833" height="1985" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="2833" height="1985" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/5666/1*VKO8I09cGPX_A7t-4vKi_A.png"
|
||||
width="2833" height="1985" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="d850" class="gm gn ar bz go b gp gq gr gs gt gu gv gw gx gy gz">The <strong
|
||||
class="go hh">Stack</strong> keeps track of the local variables within each function call. It starts
|
||||
|
@ -563,16 +502,6 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/n6.png" /></p>
|
||||
|
||||
|
||||
<div class="dz r ds ea">
|
||||
<div class="ks r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/60/1*7pOPNjiW-3uxp_QpRcjlEw.png?q=20"
|
||||
width="1046" height="674" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="1046" height="674" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/2092/1*7pOPNjiW-3uxp_QpRcjlEw.png"
|
||||
width="1046" height="674" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
<figcaption class="cd fk jm jn hv dc da db jo jp by fj">Quick peek at the Linker Map firmware.map
|
||||
</figcaption>
|
||||
</figure>
|
||||
|
@ -595,16 +524,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/n7.png" /></p>
|
||||
|
||||
|
||||
<div class="dz r ds ea">
|
||||
<div class="kt r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/60/1*FV14ibSTojC5sS6XONntxA.png?q=20"
|
||||
width="1782" height="1104" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="1782" height="1104" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/3564/1*FV14ibSTojC5sS6XONntxA.png"
|
||||
width="1782" height="1104" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="cd fk jm jn hv dc da db jo jp by fj">Verify that data_var and bss_var are allocated
|
||||
in the Data / BSS Sections according to the Linker Map firmware.map</figcaption>
|
||||
</figure>
|
||||
|
@ -654,18 +574,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/n8.png" /></p>
|
||||
|
||||
|
||||
<div class="dq dr ds dt ak">
|
||||
<div class="dz r ds ea">
|
||||
<div class="ku r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/60/1*a4Jh5J7oXBHg5_GL7V7b5g.png?q=20"
|
||||
width="1560" height="852" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="1560" height="852" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/3120/1*a4Jh5J7oXBHg5_GL7V7b5g.png"
|
||||
width="1560" height="852" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
</div>
|
||||
<div class="n p">
|
||||
|
@ -695,16 +604,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/n9.png" /></p>
|
||||
|
||||
|
||||
<div class="dz r ds ea">
|
||||
<div class="kv r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/60/1*6N77NJreDqeIOnfg56VhhQ.png?q=20"
|
||||
width="1648" height="1238" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="1648" height="1238" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/3296/1*6N77NJreDqeIOnfg56VhhQ.png"
|
||||
width="1648" height="1238" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="cd fk jm jn hv dc da db jo jp by fj">Disassembly of Blue Pill ROM at 0x0800 0000
|
||||
</figcaption>
|
||||
</figure>
|
||||
|
@ -930,16 +830,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/n10.png" /></p>
|
||||
|
||||
|
||||
<div class="dz r ds ea">
|
||||
<div class="mk r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/60/1*2nDA4MEnHpvgwAJ_mfKkIg.png?q=20"
|
||||
width="1503" height="506" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="1503" height="506" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/3006/1*2nDA4MEnHpvgwAJ_mfKkIg.png"
|
||||
width="1503" height="506" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="cd fk jm jn hv dc da db jo jp by fj">Sample Google Sheets spreadsheet that analyses
|
||||
the Linker Map file firmware.map</figcaption>
|
||||
</figure>
|
||||
|
@ -1080,16 +971,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/n11.png" /></p>
|
||||
|
||||
|
||||
<div class="dz r ds ea">
|
||||
<div class="mm r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/60/1*NCuQu79ZZDMm6IzyyMXbGQ.png?q=20"
|
||||
width="1142" height="690" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="1142" height="690" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/2284/1*NCuQu79ZZDMm6IzyyMXbGQ.png"
|
||||
width="1142" height="690" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="cd fk jm jn hv dc da db jo jp by fj">Memory Map after adding sprintf()</figcaption>
|
||||
</figure>
|
||||
</div>
|
||||
|
@ -1116,16 +998,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/n12.png" /></p>
|
||||
|
||||
|
||||
<div class="dz r ds ea">
|
||||
<div class="mn r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/60/1*MN4FFf4lzTijRJr-f2g9NA.png?q=20"
|
||||
width="1107" height="770" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="1107" height="770" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/2214/1*MN4FFf4lzTijRJr-f2g9NA.png"
|
||||
width="1107" height="770" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="cd fk jm jn hv dc da db jo jp by fj">Memory Map from the port of MakeCode to Blue
|
||||
Pill</figcaption>
|
||||
</figure>
|
||||
|
@ -1180,16 +1053,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/n13.png" /></p>
|
||||
|
||||
|
||||
<div class="dz r ds ea">
|
||||
<div class="mo r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/60/1*3DGjmQJot2LRDQzR-dwJRA.png?q=20"
|
||||
width="1098" height="697" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="1098" height="697" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191216120206im_/https://miro.medium.com/max/2196/1*3DGjmQJot2LRDQzR-dwJRA.png"
|
||||
width="1098" height="697" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="cd fk jm jn hv dc da db jo jp by fj">Memory Map from the port of MakeCode to Blue
|
||||
Pill, after optimisation</figcaption>
|
||||
</figure>
|
||||
|
|
|
@ -110,16 +110,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/j1.gif" /></p>
|
||||
|
||||
|
||||
<div class="dh r di dj">
|
||||
<div class="dk r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194111im_/https://miro.medium.com/freeze/max/60/1*0EWymp7F8ROU0pUX-vyC7A.gif?q=20"
|
||||
width="1644" height="782" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="1644" height="782" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194111im_/https://miro.medium.com/max/3288/1*0EWymp7F8ROU0pUX-vyC7A.gif"
|
||||
width="1644" height="782" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
</div>
|
||||
<div class="n p">
|
||||
|
@ -308,20 +299,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/j2.png" /></p>
|
||||
|
||||
|
||||
<div class="in io di ip ak">
|
||||
<div class="cl cm ih">
|
||||
<div class="dh r di dj">
|
||||
<div class="iq r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194111im_/https://miro.medium.com/max/60/1*7SG_RJfjtCcnOUeusbwoow.png?q=20"
|
||||
width="886" height="842" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="886" height="842" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194111im_/https://miro.medium.com/max/1772/1*7SG_RJfjtCcnOUeusbwoow.png"
|
||||
width="886" height="842" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="bo eu ir is ha cn cl cm it iu bj et">Baseloader code for flashing the Bootloader.
|
||||
From <a
|
||||
href="https://github.com/lupyuen/codal-libopencm3/blob/master/stm32/baseloader/baseloader.c#L256-L362"
|
||||
|
@ -340,20 +318,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/j3.png" /></p>
|
||||
|
||||
|
||||
<div class="in io di ip ak">
|
||||
<div class="cl cm iz">
|
||||
<div class="dh r di dj">
|
||||
<div class="ja r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194111im_/https://miro.medium.com/max/54/1*xEAfpV6RyM4XImfuUdOouw.png?q=20"
|
||||
width="762" height="836" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="762" height="836" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194111im_/https://miro.medium.com/max/1524/1*xEAfpV6RyM4XImfuUdOouw.png"
|
||||
width="762" height="836" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="bo eu ir is ha cn cl cm it iu bj et">Compiled Baseloader code. From <a
|
||||
href="https://github.com/lupyuen/codal-libopencm3/blob/master/logs/firmware.dump#L875-L1650"
|
||||
class="at cg gr gs gt gu" target="_blank"
|
||||
|
@ -424,16 +389,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/j4.gif" /></p>
|
||||
|
||||
|
||||
<div class="dh r di dj">
|
||||
<div class="jb r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194111im_/https://miro.medium.com/freeze/max/60/1*rGjBafDApcRteWb4xmQFJg.gif?q=20"
|
||||
width="2213" height="349" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="2213" height="349" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194111im_/https://miro.medium.com/max/4426/1*rGjBafDApcRteWb4xmQFJg.gif"
|
||||
width="2213" height="349" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
</div>
|
||||
<div class="n p">
|
||||
|
@ -451,16 +407,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/j5.gif" /></p>
|
||||
|
||||
|
||||
<div class="dh r di dj">
|
||||
<div class="jc r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194111im_/https://miro.medium.com/freeze/max/60/1*HapHNlS6goDV4SH2tAnUHw.gif?q=20"
|
||||
width="2213" height="353" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="2213" height="353" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194111im_/https://miro.medium.com/max/4426/1*HapHNlS6goDV4SH2tAnUHw.gif"
|
||||
width="2213" height="353" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
</div>
|
||||
<div class="n p">
|
||||
|
@ -485,16 +432,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/j6.gif" /></p>
|
||||
|
||||
|
||||
<div class="dh r di dj">
|
||||
<div class="jd r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194111im_/https://miro.medium.com/freeze/max/60/1*-4DKlyS_PbcHV1U8kzmVFA.gif?q=20"
|
||||
width="2213" height="706" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="2213" height="706" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194111im_/https://miro.medium.com/max/4426/1*-4DKlyS_PbcHV1U8kzmVFA.gif"
|
||||
width="2213" height="706" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
</div>
|
||||
<div class="n p">
|
||||
|
@ -512,18 +450,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/j7.gif" /></p>
|
||||
|
||||
|
||||
<div class="in io di ip ak">
|
||||
<div class="dh r di dj">
|
||||
<div class="je r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194111im_/https://miro.medium.com/freeze/max/60/1*pCO50XtJ92ZXPmg1LkKUdQ.gif?q=20"
|
||||
width="2213" height="456" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="2213" height="456" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194111im_/https://miro.medium.com/max/4426/1*pCO50XtJ92ZXPmg1LkKUdQ.gif"
|
||||
width="2213" height="456" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
</div>
|
||||
<div class="n p">
|
||||
|
@ -547,16 +474,6 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/j8.gif" /></p>
|
||||
|
||||
|
||||
<div class="dh r di dj">
|
||||
<div class="jf r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194111im_/https://miro.medium.com/freeze/max/60/1*FKhd4zTftEid0fdGOEnARw.gif?q=20"
|
||||
width="2213" height="307" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="2213" height="307" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194111im_/https://miro.medium.com/max/4426/1*FKhd4zTftEid0fdGOEnARw.gif"
|
||||
width="2213" height="307" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</figure>
|
||||
</div>
|
||||
<div class="n p">
|
||||
|
@ -587,16 +504,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/j9.gif" /></p>
|
||||
|
||||
|
||||
<div class="dh r di dj">
|
||||
<div class="jg r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194111im_/https://miro.medium.com/freeze/max/60/1*dtMrgW8drZ_7az9VnhUqhQ.gif?q=20"
|
||||
width="2213" height="720" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="2213" height="720" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194111im_/https://miro.medium.com/max/4426/1*dtMrgW8drZ_7az9VnhUqhQ.gif"
|
||||
width="2213" height="720" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
</div>
|
||||
<div class="n p">
|
||||
|
|
|
@ -112,18 +112,6 @@
|
|||
|
||||
|
||||
|
||||
<div class="dq dr ds dt ak">
|
||||
<div class="dz r ds ea">
|
||||
<div class="eb r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191204194207im_/https://miro.medium.com/max/60/1*0P7BkmUox48Rak_cta48QA.png?q=20"
|
||||
width="4708" height="1886" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="4708" height="1886" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191204194207im_/https://miro.medium.com/max/9416/1*0P7BkmUox48Rak_cta48QA.png"
|
||||
width="4708" height="1886" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</figure>
|
||||
</div>
|
||||
<div class="n p">
|
||||
|
@ -537,18 +525,7 @@
|
|||
|
||||
|
||||
|
||||
<div class="dq dr ds dt ak">
|
||||
<div class="dz r ds ea">
|
||||
<div class="lf r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191204194207im_/https://miro.medium.com/max/60/1*yso3pjwk8Vkvb3GxOqwkgg.png?q=20"
|
||||
width="4278" height="1049" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="4278" height="1049" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191204194207im_/https://miro.medium.com/max/8556/1*yso3pjwk8Vkvb3GxOqwkgg.png"
|
||||
width="4278" height="1049" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="cd fk hm hn ho dc da db hp hq by fj">Memory Layout for MakeCode Application
|
||||
</figcaption>
|
||||
</figure>
|
||||
|
@ -613,18 +590,7 @@
|
|||
|
||||
|
||||
|
||||
<div class="dq dr ds dt ak">
|
||||
<div class="dz r ds ea">
|
||||
<div class="lf r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191204194207im_/https://miro.medium.com/max/60/1*6-mdzt_0NGcai867jdRFJw.png?q=20"
|
||||
width="4278" height="1049" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="4278" height="1049" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191204194207im_/https://miro.medium.com/max/8556/1*6-mdzt_0NGcai867jdRFJw.png"
|
||||
width="4278" height="1049" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="cd fk hm hn ho dc da db hp hq by fj">Memory Layout after adding Bootloader
|
||||
</figcaption>
|
||||
</figure>
|
||||
|
@ -649,18 +615,7 @@
|
|||
|
||||
|
||||
|
||||
<div class="dq dr ds dt ak">
|
||||
<div class="dz r ds ea">
|
||||
<div class="lf r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191204194207im_/https://miro.medium.com/max/60/1*afGJhqhuce_Ld0b6Eks1kw.png?q=20"
|
||||
width="4278" height="1049" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="4278" height="1049" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191204194207im_/https://miro.medium.com/max/8556/1*afGJhqhuce_Ld0b6Eks1kw.png"
|
||||
width="4278" height="1049" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="cd fk hm hn ho dc da db hp hq by fj">Memory Layout optimised for Application +
|
||||
Bootloader</figcaption>
|
||||
</figure>
|
||||
|
@ -741,16 +696,6 @@
|
|||
|
||||
|
||||
|
||||
<div class="dz r ds ea">
|
||||
<div class="lh r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191204194207im_/https://miro.medium.com/max/60/1*kciuJ3Kl_p9eC1cVE9hOPw.png?q=20"
|
||||
width="2074" height="1176" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="2074" height="1176" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191204194207im_/https://miro.medium.com/max/4148/1*kciuJ3Kl_p9eC1cVE9hOPw.png"
|
||||
width="2074" height="1176" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</figure>
|
||||
</div>
|
||||
<div class="n p">
|
||||
|
@ -779,21 +724,6 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/k6.png" /></p>
|
||||
|
||||
|
||||
|
||||
<div class="dq dr ds dt ak">
|
||||
<div class="da db li">
|
||||
<div class="dz r ds ea">
|
||||
<div class="lj r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191204194207im_/https://miro.medium.com/max/60/1*niQsB5ijxu28x4dj3naRiw.png?q=20"
|
||||
width="1726" height="1228" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="1726" height="1228" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191204194207im_/https://miro.medium.com/max/3452/1*niQsB5ijxu28x4dj3naRiw.png"
|
||||
width="1726" height="1228" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</figure>
|
||||
<p id="2f2b" class="gm gn ar bz go b gp gq gr gs gt gu gv gw gx gy gz">1️⃣ MakeCode website first sends
|
||||
the <code class="ea jb jc jd je b">BININFO</code> command. Blue Pill returns the current mode
|
||||
|
@ -810,20 +740,6 @@
|
|||
|
||||
|
||||
|
||||
<div class="dq dr ds dt ak">
|
||||
<div class="da db li">
|
||||
<div class="dz r ds ea">
|
||||
<div class="lk r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191204194207im_/https://miro.medium.com/max/60/1*8BrNvbyovzAuZDjn9yTrlg.png?q=20"
|
||||
width="1726" height="1498" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="1726" height="1498" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191204194207im_/https://miro.medium.com/max/3452/1*8BrNvbyovzAuZDjn9yTrlg.png"
|
||||
width="1726" height="1498" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</figure>
|
||||
<p id="ed5f" class="gm gn ar bz go b gp gq gr gs gt gu gv gw gx gy gz">4️⃣ For each 1 KB page of data to
|
||||
be flashed, MakeCode sends the <code class="ea jb jc jd je b">WRITE_FLASH_PAGE</code> command and the
|
||||
|
@ -1025,18 +941,7 @@
|
|||
|
||||
|
||||
|
||||
<div class="dq dr ds dt ak">
|
||||
<div class="dz r ds ea">
|
||||
<div class="lf r">
|
||||
<div class="du dv de t u dw ak ax dx dy"><img class="de t u dw ak ec ed ee"
|
||||
src="https://web.archive.org/web/20191204194207im_/https://miro.medium.com/max/60/1*afGJhqhuce_Ld0b6Eks1kw.png?q=20"
|
||||
width="4278" height="1049" role="presentation" /></div><img class="du dv de t u dw ak ef"
|
||||
width="4278" height="1049" role="presentation" /><noscript><img class="de t u dw ak"
|
||||
src="https://web.archive.org/web/20191204194207im_/https://miro.medium.com/max/8556/1*afGJhqhuce_Ld0b6Eks1kw.png"
|
||||
width="4278" height="1049" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="cd fk hm hn ho dc da db hp hq by fj">Memory Layout with two memory regions
|
||||
</figcaption>
|
||||
</figure>
|
||||
|
|
|
@ -110,16 +110,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/m1.png" /></p>
|
||||
|
||||
|
||||
<div class="dh r di dj">
|
||||
<div class="dk r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/60/1*Vxgr9fS45NRgtYPmDzkOgg.png?q=20"
|
||||
width="2354" height="943" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="2354" height="943" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/4708/1*Vxgr9fS45NRgtYPmDzkOgg.png"
|
||||
width="2354" height="943" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
</div>
|
||||
<div class="n p">
|
||||
|
@ -323,21 +314,7 @@
|
|||
|
||||
|
||||
|
||||
<div class="jj jk di jl ak">
|
||||
<div class="cl cm jg">
|
||||
<div class="dh r di dj">
|
||||
<div class="jm r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/60/1*T-dyq0-eWyPLbCfLD67tHg.png?q=20"
|
||||
width="1356" height="1152" role="presentation" /></div><img
|
||||
class="db dc cp t u dd ak do" width="1356" height="1152"
|
||||
role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/2712/1*T-dyq0-eWyPLbCfLD67tHg.png"
|
||||
width="1356" height="1152" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="bo eu gy gz ha cn cl cm hb hc bj et">Assembly Code for the magic trick. From <a
|
||||
href="https://github.com/lupyuen/stm32bluepill-math-hack/blob/master/firmware.dump"
|
||||
class="at cg gn go gp gq" target="_blank"
|
||||
|
@ -573,18 +550,7 @@
|
|||
|
||||
|
||||
|
||||
<div class="cl cm lf">
|
||||
<div class="dh r di dj">
|
||||
<div class="lg r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/56/1*xy5n_cwadL-zsRk6R5WfQA.png?q=20"
|
||||
width="574" height="623" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="574" height="623" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/1148/1*xy5n_cwadL-zsRk6R5WfQA.png"
|
||||
width="574" height="623" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="bo eu gy gz ha cn cl cm hb hc bj et">nano-float function derived from Qfplib and
|
||||
the unit test cases below. From <a
|
||||
href="https://github.com/lupyuen/codal-libopencm3/blob/master/lib/nano-float/src/functions.c#L555-L585"
|
||||
|
@ -600,18 +566,7 @@
|
|||
|
||||
|
||||
|
||||
<div class="cl cm lh">
|
||||
<div class="dh r di dj">
|
||||
<div class="lu r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/22/1*tMEXJjzpk07yLicBUf5QAg.png?q=20"
|
||||
width="149" height="408" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="149" height="408" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/298/1*tMEXJjzpk07yLicBUf5QAg.png"
|
||||
width="149" height="408" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="bo eu gy gz ha cn cl cm hb hc bj et">Functions provided by qfplib</figcaption>
|
||||
</figure>
|
||||
<p id="31a6" class="fz ga ds bk gb b gc gd ge gf gg gh gi gj gk gl gm">Qfplib provides the basic
|
||||
|
@ -645,18 +600,6 @@
|
|||
|
||||
|
||||
|
||||
<div class="cl cm lv">
|
||||
<div class="dh r di dj">
|
||||
<div class="lw r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/60/1*yQ3XXvj4wOlX_KU9-bu73A.png?q=20"
|
||||
width="221" height="58" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="221" height="58" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/442/1*yQ3XXvj4wOlX_KU9-bu73A.png"
|
||||
width="221" height="58" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<figcaption class="bo eu gy gz ha cn cl cm hb hc bj et"><a
|
||||
href="https://en.wikipedia.org/wiki/Logarithm"
|
||||
class="at cg gn go gp gq" target="_blank"
|
||||
|
@ -676,18 +619,7 @@
|
|||
|
||||
|
||||
|
||||
<div class="cl cm lx">
|
||||
<div class="dh r di dj">
|
||||
<div class="ly r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/60/1*kwoOS4PqDOIZ6dedO8XDKg.png?q=20"
|
||||
width="407" height="137" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="407" height="137" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/814/1*kwoOS4PqDOIZ6dedO8XDKg.png"
|
||||
width="407" height="137" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="bo eu gy gz ha cn cl cm hb hc bj et"><a
|
||||
href="https://en.wikipedia.org/wiki/Inverse_trigonometric_functions"
|
||||
class="at cg gn go gp gq" target="_blank"
|
||||
|
@ -710,18 +642,7 @@
|
|||
|
||||
|
||||
|
||||
<div class="cl cm lz">
|
||||
<div class="dh r di dj">
|
||||
<div class="ma r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/60/1*iJMjYHCFDQP4w51Rqqzrcw.png?q=20"
|
||||
width="456" height="230" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="456" height="230" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/912/1*iJMjYHCFDQP4w51Rqqzrcw.png"
|
||||
width="456" height="230" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="bo eu gy gz ha cn cl cm hb hc bj et"><a
|
||||
href="https://en.wikipedia.org/wiki/Hyperbolic_function"
|
||||
class="at cg gn go gp gq" target="_blank"
|
||||
|
@ -744,18 +665,6 @@
|
|||
|
||||
|
||||
|
||||
<div class="cl cm mb">
|
||||
<div class="dh r di dj">
|
||||
<div class="mc r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/60/1*sDQG0YHQDEdbNux2QD6rdQ.png?q=20"
|
||||
width="594" height="438" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="594" height="438" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/1188/1*sDQG0YHQDEdbNux2QD6rdQ.png"
|
||||
width="594" height="438" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<figcaption class="bo eu gy gz ha cn cl cm hb hc bj et"><a
|
||||
href="https://en.wikipedia.org/wiki/Inverse_hyperbolic_functions"
|
||||
class="at cg gn go gp gq" target="_blank"
|
||||
|
@ -781,16 +690,6 @@
|
|||
|
||||
|
||||
|
||||
<div class="dh r di dj">
|
||||
<div class="md r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/60/1*-w3I_Q0Tq0eLiQcNlhFT8Q.png?q=20"
|
||||
width="1338" height="520" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="1338" height="520" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/2676/1*-w3I_Q0Tq0eLiQcNlhFT8Q.png"
|
||||
width="1338" height="520" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
<figcaption class="bo eu gy gz ha cn cl cm hb hc bj et">nano-float unit tests automatically extracted
|
||||
from the nano-float source code. From <a
|
||||
href="https://docs.google.com/spreadsheets/d/1Uogm7SpgWVA4AiP6gqFkluaozFtlaEGMc4K2Mbfee7U/edit#gid=1740497564"
|
||||
|
@ -867,16 +766,6 @@
|
|||
|
||||
|
||||
|
||||
<div class="dh r di dj">
|
||||
<div class="mk r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/60/1*MN4FFf4lzTijRJr-f2g9NA.png?q=20"
|
||||
width="1107" height="770" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="1107" height="770" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/2214/1*MN4FFf4lzTijRJr-f2g9NA.png"
|
||||
width="1107" height="770" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
<figcaption class="bo eu gy gz ha cn cl cm hb hc bj et">Memory usage of the MakeCode application on Blue
|
||||
Pill, without Qfplib and nano-float. From <a
|
||||
href="https://docs.google.com/spreadsheets/d/1DWFoh0Ui9j294htHzQrH-s6MuPRXct2zN8M9pj53CBk/edit#gid=381366828&fvid=1359565135"
|
||||
|
@ -935,16 +824,7 @@
|
|||
|
||||
|
||||
|
||||
<div class="dh r di dj">
|
||||
<div class="ml r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/60/1*3DGjmQJot2LRDQzR-dwJRA.png?q=20"
|
||||
width="1098" height="697" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="1098" height="697" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194230im_/https://miro.medium.com/max/2196/1*3DGjmQJot2LRDQzR-dwJRA.png"
|
||||
width="1098" height="697" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="bo eu gy gz ha cn cl cm hb hc bj et">Memory usage of the MakeCode application on Blue
|
||||
Pill, with Qfplib and nano-float. From <a
|
||||
href="https://docs.google.com/spreadsheets/d/1OmD1XmUQJTIiXklYx-eui27MFBBhnXrCNaJwSUFDiN8/edit#gid=381366828&fvid=1359565135"
|
||||
|
|
|
@ -111,20 +111,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/l1.png" /></p>
|
||||
|
||||
|
||||
<div class="dc dd de df ai">
|
||||
<div class="dl r de dm">
|
||||
<div class="dn do r">
|
||||
<div class="dg dh s t u di ai av dj dk"><img alt="Image for post" class="s t u di ai dp dq dr"
|
||||
src="https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/60/1*M3Y_T_EI28gPHHBXGxTmjw.png?q=20"
|
||||
width="4480" height="1330" /></div><img alt="Image for post" class="dg dh s t u di ai ds"
|
||||
width="4480" height="1330" /><noscript><img alt="Image for post" class="s t u di ai"
|
||||
src="https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/8960/1*M3Y_T_EI28gPHHBXGxTmjw.png"
|
||||
width="4480" height="1330"
|
||||
srcset="https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/552/1*M3Y_T_EI28gPHHBXGxTmjw.png 276w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1104/1*M3Y_T_EI28gPHHBXGxTmjw.png 552w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1280/1*M3Y_T_EI28gPHHBXGxTmjw.png 640w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1456/1*M3Y_T_EI28gPHHBXGxTmjw.png 728w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1632/1*M3Y_T_EI28gPHHBXGxTmjw.png 816w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1808/1*M3Y_T_EI28gPHHBXGxTmjw.png 904w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1984/1*M3Y_T_EI28gPHHBXGxTmjw.png 992w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/2160/1*M3Y_T_EI28gPHHBXGxTmjw.png 1080w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/2700/1*M3Y_T_EI28gPHHBXGxTmjw.png 1350w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/3240/1*M3Y_T_EI28gPHHBXGxTmjw.png 1620w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/3780/1*M3Y_T_EI28gPHHBXGxTmjw.png 1890w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/4320/1*M3Y_T_EI28gPHHBXGxTmjw.png 2160w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/4800/1*M3Y_T_EI28gPHHBXGxTmjw.png 2400w"
|
||||
sizes="100vw" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
</div>
|
||||
<div class="n p">
|
||||
|
@ -260,22 +247,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/l2.png" /></p>
|
||||
|
||||
|
||||
<div class="dc dd de df ai">
|
||||
<div class="cn co ih">
|
||||
<div class="dl r de dm">
|
||||
<div class="in do r">
|
||||
<div class="dg dh s t u di ai av dj dk"><img alt="Image for post" class="s t u di ai dp dq dr"
|
||||
src="https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/60/1*FiG_WO_MBykxnwbf0e2EhA@2x.jpeg?q=20"
|
||||
width="2251" height="1501" /></div><img alt="Image for post" class="dg dh s t u di ai ds"
|
||||
width="2251" height="1501" /><noscript><img alt="Image for post" class="s t u di ai"
|
||||
src="https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/4502/1*FiG_WO_MBykxnwbf0e2EhA@2x.jpeg"
|
||||
width="2251" height="1501"
|
||||
srcset="https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/552/1*FiG_WO_MBykxnwbf0e2EhA@2x.jpeg 276w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1104/1*FiG_WO_MBykxnwbf0e2EhA@2x.jpeg 552w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1280/1*FiG_WO_MBykxnwbf0e2EhA@2x.jpeg 640w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1400/1*FiG_WO_MBykxnwbf0e2EhA@2x.jpeg 700w"
|
||||
sizes="700px" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="io hx cp cn co ip iq cc fe ff ce ch">BME280 Humidity Sensor Computation. From <a
|
||||
href="https://github.com/finitespace/BME280/blob/master/src/BME280.cpp"
|
||||
class="bw gc id ie if ig" target="_blank"
|
||||
|
@ -557,10 +529,6 @@
|
|||
|
||||
<p><img src="https://lupyuen.github.io/images/legacy2/l3.png" /></p>
|
||||
|
||||
|
||||
<div class="n p bb"><img alt="Image for post" class="ma"
|
||||
src="https://web.archive.org/web/20200717195257im_/https://miro.medium.com/proxy/1*4OgFZjG0s3G2SR9m3--h5w.png" />
|
||||
</div>
|
||||
<figcaption class="io hx cp cn co ip iq cc fe ff ce ch">Command buttons in the status bar</figcaption>
|
||||
</figure>
|
||||
<p id="d693" class="gx gy cd ha b hb hc hd he hf hg hh hi hj hk hl hm hn ho hp hq cv ap">7️⃣ Click <code
|
||||
|
@ -650,18 +618,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/l4.png" /></p>
|
||||
|
||||
|
||||
<div class="dl r de dm">
|
||||
<div class="mb do r">
|
||||
<div class="dg dh s t u di ai av dj dk"><img alt="Image for post" class="s t u di ai dp dq dr"
|
||||
src="https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/60/1*-w3I_Q0Tq0eLiQcNlhFT8Q.png?q=20"
|
||||
width="1338" height="520" /></div><img alt="Image for post" class="dg dh s t u di ai ds"
|
||||
width="1338" height="520" /><noscript><img alt="Image for post" class="s t u di ai"
|
||||
src="https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/2676/1*-w3I_Q0Tq0eLiQcNlhFT8Q.png"
|
||||
width="1338" height="520"
|
||||
srcset="https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/552/1*-w3I_Q0Tq0eLiQcNlhFT8Q.png 276w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1104/1*-w3I_Q0Tq0eLiQcNlhFT8Q.png 552w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1280/1*-w3I_Q0Tq0eLiQcNlhFT8Q.png 640w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1456/1*-w3I_Q0Tq0eLiQcNlhFT8Q.png 728w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1632/1*-w3I_Q0Tq0eLiQcNlhFT8Q.png 816w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1808/1*-w3I_Q0Tq0eLiQcNlhFT8Q.png 904w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1984/1*-w3I_Q0Tq0eLiQcNlhFT8Q.png 992w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/2160/1*-w3I_Q0Tq0eLiQcNlhFT8Q.png 1080w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/2676/1*-w3I_Q0Tq0eLiQcNlhFT8Q.png 1338w"
|
||||
sizes="1338px" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="io hx cp cn co ip iq cc fe ff ce ch">nano-float unit tests automatically extracted
|
||||
from the nano-float source code. From <a
|
||||
href="https://docs.google.com/spreadsheets/d/1Uogm7SpgWVA4AiP6gqFkluaozFtlaEGMc4K2Mbfee7U/edit#gid=1740497564"
|
||||
|
@ -712,20 +669,6 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/l5.png" /></p>
|
||||
|
||||
|
||||
<div class="cn co mn">
|
||||
<div class="dl r de dm">
|
||||
<div class="mo do r">
|
||||
<div class="dg dh s t u di ai av dj dk"><img alt="Image for post" class="s t u di ai dp dq dr"
|
||||
src="https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/56/1*xy5n_cwadL-zsRk6R5WfQA.png?q=20"
|
||||
width="574" height="623" /></div><img alt="Image for post" class="dg dh s t u di ai ds"
|
||||
width="574" height="623" /><noscript><img alt="Image for post" class="s t u di ai"
|
||||
src="https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1148/1*xy5n_cwadL-zsRk6R5WfQA.png"
|
||||
width="574" height="623"
|
||||
srcset="https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/552/1*xy5n_cwadL-zsRk6R5WfQA.png 276w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1104/1*xy5n_cwadL-zsRk6R5WfQA.png 552w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1148/1*xy5n_cwadL-zsRk6R5WfQA.png 574w"
|
||||
sizes="574px" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<figcaption class="io hx cp cn co ip iq cc fe ff ce ch">nano-float library source code and the unit
|
||||
test cases below. From <a
|
||||
href="https://github.com/lupyuen/codal-libopencm3/blob/master/lib/nano-float/src/functions.c#L555-L585"
|
||||
|
@ -740,22 +683,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/l6.png" /></p>
|
||||
|
||||
|
||||
<div class="dc dd de df ai">
|
||||
<div class="cn co mp">
|
||||
<div class="dl r de dm">
|
||||
<div class="mq do r">
|
||||
<div class="dg dh s t u di ai av dj dk"><img alt="Image for post" class="s t u di ai dp dq dr"
|
||||
src="https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/60/1*xfrrMWWjPodZ5zrBJWUWlQ.png?q=20"
|
||||
width="1556" height="226" /></div><img alt="Image for post" class="dg dh s t u di ai ds"
|
||||
width="1556" height="226" /><noscript><img alt="Image for post" class="s t u di ai"
|
||||
src="https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/3112/1*xfrrMWWjPodZ5zrBJWUWlQ.png"
|
||||
width="1556" height="226"
|
||||
srcset="https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/552/1*xfrrMWWjPodZ5zrBJWUWlQ.png 276w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1104/1*xfrrMWWjPodZ5zrBJWUWlQ.png 552w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1280/1*xfrrMWWjPodZ5zrBJWUWlQ.png 640w, https://web.archive.org/web/20200717195257im_/https://miro.medium.com/max/1400/1*xfrrMWWjPodZ5zrBJWUWlQ.png 700w"
|
||||
sizes="700px" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="io hx cp cn co ip iq cc fe ff ce ch">Test Suite generated by the spreadsheet. From
|
||||
<a href="https://github.com/lupyuen/stm32bluepill-unittest/blob/master/lib/nano-float/test/test.c#L332-L336"
|
||||
class="bw gc id ie if ig" target="_blank"
|
||||
|
|
|
@ -114,16 +114,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/o1.png" /></p>
|
||||
|
||||
|
||||
<div class="dh r di dj">
|
||||
<div class="dk r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/60/1*fjfoda1Ovwdahy09TwUkqA.png?q=20"
|
||||
width="1920" height="1080" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="1920" height="1080" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/3840/1*fjfoda1Ovwdahy09TwUkqA.png"
|
||||
width="1920" height="1080" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="bo dp dq dr ds cn cl cm dt du bj dv">Blue Pill Bootloader connected to Windows
|
||||
</figcaption>
|
||||
</figure>
|
||||
|
@ -343,18 +334,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/o2.png" /></p>
|
||||
|
||||
|
||||
<div class="cl cm jm">
|
||||
<div class="dh r di dj">
|
||||
<div class="js r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/48/1*oPbLTojzzwFwT3LYDa-xEw.png?q=20"
|
||||
width="400" height="505" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="400" height="505" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/800/1*oPbLTojzzwFwT3LYDa-xEw.png"
|
||||
width="400" height="505" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="bo dp dq dr ds cn cl cm dt du bj dv">Common sight during my USB development…
|
||||
“Drivers not installed” due to USB descriptor errors or USB request processing errors</figcaption>
|
||||
</figure>
|
||||
|
@ -433,20 +413,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/o3.png" /></p>
|
||||
|
||||
|
||||
<div class="kb kc di kd ak">
|
||||
<div class="cl cm ka">
|
||||
<div class="dh r di dj">
|
||||
<div class="ke r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/60/1*6GIcdEMCbtXb346Bt9S7JQ.png?q=20"
|
||||
width="719" height="598" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="719" height="598" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/1438/1*6GIcdEMCbtXb346Bt9S7JQ.png"
|
||||
width="719" height="598" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="bo dp dq dr ds cn cl cm dt du bj dv">USB Mass Storage Class (MSC) request to fetch
|
||||
the maximum logical unit number (i.e. drive number). From the Wireshark log <a
|
||||
href="https://github.com/lupyuen/bluepill-bootloader/blob/master/logs/usb-windows.pcapng.gz"
|
||||
|
@ -464,20 +431,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/o4.png" /></p>
|
||||
|
||||
|
||||
<div class="kb kc di kd ak">
|
||||
<div class="cl cm kf">
|
||||
<div class="dh r di dj">
|
||||
<div class="ks r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/60/1*KG-fnIeqEsgZ8LJv9dckpA.png?q=20"
|
||||
width="1095" height="908" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="1095" height="908" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/2190/1*KG-fnIeqEsgZ8LJv9dckpA.png"
|
||||
width="1095" height="908" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="bo dp dq dr ds cn cl cm dt du bj dv">Blue Pill appears on Windows as a USB Mass
|
||||
Storage Device. At the lower left are the files emulated by Blue Pill (done by ghostfat.c)
|
||||
</figcaption>
|
||||
|
@ -589,20 +543,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/o5.png" /></p>
|
||||
|
||||
|
||||
<div class="kb kc di kd ak">
|
||||
<div class="cl cm lb">
|
||||
<div class="dh r di dj">
|
||||
<div class="lc r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://miro.medium.com/max/60/1*hF2n5xeSEOsDNP_Heymgbg.png?q=20"
|
||||
width="1539" height="695" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="1539" height="695" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://miro.medium.com/max/3078/1*hF2n5xeSEOsDNP_Heymgbg.png"
|
||||
width="1539" height="695" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="bo dp dq dr ds cn cl cm dt du bj dv">ghostfat.c emulates a 4 MB flash drive and
|
||||
exposes the 3 files above</figcaption>
|
||||
</figure>
|
||||
|
@ -650,20 +591,6 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/o6.png" /></p>
|
||||
|
||||
|
||||
<div class="kb kc di kd ak">
|
||||
<div class="cl cm ld">
|
||||
<div class="dh r di dj">
|
||||
<div class="le r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/46/1*UA6gHiWDenc0WOmYtQmL-A.png?q=20"
|
||||
width="602" height="771" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="602" height="771" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/1204/1*UA6gHiWDenc0WOmYtQmL-A.png"
|
||||
width="602" height="771" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<figcaption class="bo dp dq dr ds cn cl cm dt du bj dv">Blue Pill appears as a USB Serial Device on
|
||||
COM3. We may use putty to connect to COM3 and Blue Pill will echo everything that we type
|
||||
</figcaption>
|
||||
|
@ -743,20 +670,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/o7.png" /></p>
|
||||
|
||||
|
||||
<div class="kb kc di kd ak">
|
||||
<div class="cl cm lo">
|
||||
<div class="dh r di dj">
|
||||
<div class="lp r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/58/0*12MBGX-VO0gqSVnW.png?q=20"
|
||||
width="444" height="458" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="444" height="458" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/888/0*12MBGX-VO0gqSVnW.png"
|
||||
width="444" height="458" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="bo dp dq dr ds cn cl cm dt du bj dv">Hierarchy of USB Descriptors. From <a
|
||||
href="https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/standard-usb-descriptors"
|
||||
class="at cg gs gt gu gv" target="_blank"
|
||||
|
@ -863,20 +777,6 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/o8.png" /></p>
|
||||
|
||||
|
||||
<div class="kb kc di kd ak">
|
||||
<div class="cl cm lu">
|
||||
<div class="dh r di dj">
|
||||
<div class="lv r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/60/1*EDMD5Q8sFnKDNxzeZAQjKg.png?q=20"
|
||||
width="619" height="522" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="619" height="522" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/1238/1*EDMD5Q8sFnKDNxzeZAQjKg.png"
|
||||
width="619" height="522" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<figcaption class="bo dp dq dr ds cn cl cm dt du bj dv">String Descriptor 0 returns the supported
|
||||
Language ID (0x0409). From the Wireshark log <a
|
||||
href="https://github.com/lupyuen/bluepill-bootloader/blob/master/logs/usb-windows.pcapng.gz"
|
||||
|
@ -902,20 +802,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/o9.png" /></p>
|
||||
|
||||
|
||||
<div class="kb kc di kd ak">
|
||||
<div class="cl cm me">
|
||||
<div class="dh r di dj">
|
||||
<div class="mh r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/60/1*5GAoWCMuQ8VMP4p5jfAC4g.png?q=20"
|
||||
width="1756" height="892" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="1756" height="892" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/3512/1*5GAoWCMuQ8VMP4p5jfAC4g.png"
|
||||
width="1756" height="892" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="bo dp dq dr ds cn cl cm dt du bj dv">Long list of USB Descriptors used by our
|
||||
Blue Pill bootloader. From <a
|
||||
href="https://github.com/lupyuen/bluepill-bootloader/blob/master/src/usb_conf.c"
|
||||
|
@ -967,20 +854,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/o10.png" /></p>
|
||||
|
||||
|
||||
<div class="kb kc di kd ak">
|
||||
<div class="cl cm mi">
|
||||
<div class="dh r di dj">
|
||||
<div class="mj r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/60/1*bXb6nabe53yN9EX-K9P5TA.png?q=20"
|
||||
width="976" height="347" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="976" height="347" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/1952/1*bXb6nabe53yN9EX-K9P5TA.png"
|
||||
width="976" height="347" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="bo dp dq dr ds cn cl cm dt du bj dv">On macOS, the landing page URL is displayed as
|
||||
a Chrome notification. On Windows the notification seems to be disabled.</figcaption>
|
||||
</figure>
|
||||
|
@ -1012,20 +886,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/o11.png" /></p>
|
||||
|
||||
|
||||
<div class="kb kc di kd ak">
|
||||
<div class="cl cm mk">
|
||||
<div class="dh r di dj">
|
||||
<div class="ml r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/60/1*n5_A43SFau7JB29cmykQmg.png?q=20"
|
||||
width="1814" height="1402" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="1814" height="1402" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/3628/1*n5_A43SFau7JB29cmykQmg.png"
|
||||
width="1814" height="1402" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="bo dp dq dr ds cn cl cm dt du bj dv">Windows requesting the BOS Descriptor from
|
||||
Blue Pill. From the Wireshark log <a
|
||||
href="https://github.com/lupyuen/bluepill-bootloader/blob/master/logs/usb-windows.pcapng.gz"
|
||||
|
@ -1461,16 +1322,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/o12.png" /></p>
|
||||
|
||||
|
||||
<div class="dh r di dj">
|
||||
<div class="dk r">
|
||||
<div class="db dc cp t u dd ak de df dg"><img class="cp t u dd ak dl dm dn"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/60/1*fjfoda1Ovwdahy09TwUkqA.png?q=20"
|
||||
width="1920" height="1080" role="presentation" /></div><img class="db dc cp t u dd ak do"
|
||||
width="1920" height="1080" role="presentation" /><noscript><img class="cp t u dd ak"
|
||||
src="https://web.archive.org/web/20191204194248im_/https://miro.medium.com/max/3840/1*fjfoda1Ovwdahy09TwUkqA.png"
|
||||
width="1920" height="1080" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
@ -110,21 +110,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/g1.jpeg" /></p>
|
||||
|
||||
|
||||
<div class="er es et eu ak">
|
||||
<div class="dm dn ej">
|
||||
<div class="fa r et fb">
|
||||
<div class="fc r">
|
||||
<div class="ev ew dq t u ex ak cd ey ez"><img class="dq t u ex ak fd fe ff"
|
||||
src="https://web.archive.org/web/20191204194215im_/https://miro.medium.com/max/60/1*bAzQH4RFtSWknvblylsckA.jpeg?q=20"
|
||||
width="4625" height="2602" role="presentation" /></div><img
|
||||
class="ev ew dq t u ex ak fg" width="4625" height="2602"
|
||||
role="presentation" /><noscript><img class="dq t u ex ak"
|
||||
src="https://web.archive.org/web/20191204194215im_/https://miro.medium.com/max/9250/1*bAzQH4RFtSWknvblylsckA.jpeg"
|
||||
width="4625" height="2602" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -275,18 +261,6 @@
|
|||
|
||||
|
||||
|
||||
<div class="er es et eu ak">
|
||||
<div class="fa r et fb">
|
||||
<div class="ix r">
|
||||
<div class="ev ew dq t u ex ak cd ey ez"><img class="dq t u ex ak fd fe ff"
|
||||
src="https://web.archive.org/web/20191204194215im_/https://miro.medium.com/max/60/1*sgR8xLzvTMEuVp11Zcqx1A.png?q=20"
|
||||
width="3840" height="2880" role="presentation" /></div><img class="ev ew dq t u ex ak fg"
|
||||
width="3840" height="2880" role="presentation" /><noscript><img class="dq t u ex ak"
|
||||
src="https://web.archive.org/web/20191204194215im_/https://miro.medium.com/max/7680/1*sgR8xLzvTMEuVp11Zcqx1A.png"
|
||||
width="3840" height="2880" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<figcaption class="ax gm iy iz ja do dm dn jb jc as cv">Translated Super Blue Pill Schematics. From <a
|
||||
href="https://drive.google.com/open?id=1WU_erkN-fPBfNYVX5BOHhjfHLPkTgSwOKEL8rYcAIrI&authuser=0"
|
||||
class="da by ij ik il im" target="_blank"
|
||||
|
@ -398,20 +372,7 @@
|
|||
|
||||
|
||||
|
||||
<div class="er es et eu ak">
|
||||
<div class="dm dn kn">
|
||||
<div class="fa r et fb">
|
||||
<div class="la r">
|
||||
<div class="ev ew dq t u ex ak cd ey ez"><img class="dq t u ex ak fd fe ff"
|
||||
src="https://web.archive.org/web/20191204194215im_/https://miro.medium.com/max/60/1*Sh-alRCKOHUwo4-nTnyPOg.png?q=20"
|
||||
width="802" height="630" role="presentation" /></div><img class="ev ew dq t u ex ak fg"
|
||||
width="802" height="630" role="presentation" /><noscript><img class="dq t u ex ak"
|
||||
src="https://web.archive.org/web/20191204194215im_/https://miro.medium.com/max/1604/1*Sh-alRCKOHUwo4-nTnyPOg.png"
|
||||
width="802" height="630" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="ax gm iy iz ja do dm dn jb jc as cv">Super Blue Pill Form Factor</figcaption>
|
||||
</figure>
|
||||
<p id="7089" class="hu hv fk at hw b hx hy hz ia ib ic id ie if ig ih">Super Blue Pill is 52 mm by 41 mm
|
||||
|
@ -438,20 +399,7 @@
|
|||
|
||||
|
||||
|
||||
<div class="er es et eu ak">
|
||||
<div class="dm dn lb">
|
||||
<div class="fa r et fb">
|
||||
<div class="lc r">
|
||||
<div class="ev ew dq t u ex ak cd ey ez"><img class="dq t u ex ak fd fe ff"
|
||||
src="https://web.archive.org/web/20191204194215im_/https://miro.medium.com/max/60/1*M4657CY4lMbIAT-K6CdwnQ.jpeg?q=20"
|
||||
width="2687" height="2254" role="presentation" /></div><img class="ev ew dq t u ex ak fg"
|
||||
width="2687" height="2254" role="presentation" /><noscript><img class="dq t u ex ak"
|
||||
src="https://web.archive.org/web/20191204194215im_/https://miro.medium.com/max/5374/1*M4657CY4lMbIAT-K6CdwnQ.jpeg"
|
||||
width="2687" height="2254" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="ax gm iy iz ja do dm dn jb jc as cv">Super Blue Pill and Blue Pill</figcaption>
|
||||
</figure>
|
||||
</div>
|
||||
|
@ -473,21 +421,6 @@
|
|||
|
||||
|
||||
|
||||
<div class="er es et eu ak">
|
||||
<div class="dm dn ld">
|
||||
<div class="fa r et fb">
|
||||
<div class="le r">
|
||||
<div class="ev ew dq t u ex ak cd ey ez"><img class="dq t u ex ak fd fe ff"
|
||||
src="https://web.archive.org/web/20191204194215im_/https://miro.medium.com/max/60/1*sXjOIlLUjLy8kiCXkv5nmw.png?q=20"
|
||||
width="1953" height="1401" role="presentation" /></div><img
|
||||
class="ev ew dq t u ex ak fg" width="1953" height="1401"
|
||||
role="presentation" /><noscript><img class="dq t u ex ak"
|
||||
src="https://web.archive.org/web/20191204194215im_/https://miro.medium.com/max/3906/1*sXjOIlLUjLy8kiCXkv5nmw.png"
|
||||
width="1953" height="1401" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<figcaption class="ax gm iy iz ja do dm dn jb jc as cv">Port SPI1 is shared by nRF24L01, TF Card and
|
||||
External Flash interfaces</figcaption>
|
||||
</figure>
|
||||
|
@ -521,21 +454,6 @@
|
|||
|
||||
|
||||
|
||||
<div class="er es et eu ak">
|
||||
<div class="dm dn lf">
|
||||
<div class="fa r et fb">
|
||||
<div class="lg r">
|
||||
<div class="ev ew dq t u ex ak cd ey ez"><img class="dq t u ex ak fd fe ff"
|
||||
src="https://web.archive.org/web/20191204194215im_/https://miro.medium.com/max/60/1*Ol8By73rjXAxmELM6AFb2w.jpeg?q=20"
|
||||
width="2977" height="1675" role="presentation" /></div><img
|
||||
class="ev ew dq t u ex ak fg" width="2977" height="1675"
|
||||
role="presentation" /><noscript><img class="dq t u ex ak"
|
||||
src="https://web.archive.org/web/20191204194215im_/https://miro.medium.com/max/5954/1*Ol8By73rjXAxmELM6AFb2w.jpeg"
|
||||
width="2977" height="1675" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</figure>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -674,21 +592,7 @@
|
|||
|
||||
|
||||
|
||||
<div class="er es et eu ak">
|
||||
<div class="dm dn mu">
|
||||
<div class="fa r et fb">
|
||||
<div class="mv r">
|
||||
<div class="ev ew dq t u ex ak cd ey ez"><img class="dq t u ex ak fd fe ff"
|
||||
src="https://web.archive.org/web/20191204194215im_/https://miro.medium.com/max/60/1*5DS-e1ek1Q7qfgKgF37GGg.jpeg?q=20"
|
||||
width="2512" height="2448" role="presentation" /></div><img
|
||||
class="ev ew dq t u ex ak fg" width="2512" height="2448"
|
||||
role="presentation" /><noscript><img class="dq t u ex ak"
|
||||
src="https://web.archive.org/web/20191204194215im_/https://miro.medium.com/max/5024/1*5DS-e1ek1Q7qfgKgF37GGg.jpeg"
|
||||
width="2512" height="2448" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="ax gm iy iz ja do dm dn jb jc as cv">Super Blue Pill with ESP-01S and nRF24L01+
|
||||
</figcaption>
|
||||
</figure>
|
||||
|
@ -736,21 +640,6 @@
|
|||
|
||||
|
||||
|
||||
<div class="er es et eu ak">
|
||||
<div class="dm dn ej">
|
||||
<div class="fa r et fb">
|
||||
<div class="fc r">
|
||||
<div class="ev ew dq t u ex ak cd ey ez"><img class="dq t u ex ak fd fe ff"
|
||||
src="https://web.archive.org/web/20191204194215im_/https://miro.medium.com/max/60/1*Xiok8G_py4FnToVc1l97XQ.jpeg?q=20"
|
||||
width="4625" height="2602" role="presentation" /></div><img
|
||||
class="ev ew dq t u ex ak fg" width="4625" height="2602"
|
||||
role="presentation" /><noscript><img class="dq t u ex ak"
|
||||
src="https://web.archive.org/web/20191204194215im_/https://miro.medium.com/max/9250/1*Xiok8G_py4FnToVc1l97XQ.jpeg"
|
||||
width="4625" height="2602" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<figcaption class="ax gm iy iz ja do dm dn jb jc as cv">Field test for Super Blue Pill with ESP-01S
|
||||
and nRF24L01+</figcaption>
|
||||
</figure>
|
||||
|
|
|
@ -110,18 +110,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v1.png" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="en r eg eo">
|
||||
<div class="ep r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*cWkz4VgkkdnGOdTMoAxcmQ.png?q=20"
|
||||
width="3264" height="2012" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="3264" height="2012" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/6528/1*cWkz4VgkkdnGOdTMoAxcmQ.png"
|
||||
width="3264" height="2012" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="ax eu ev ew ex dq do dp ey ez as cx">IoT sensor device with STM32 Blue Pill
|
||||
microcontroller, Quectel BC95-G global NB-IoT module and 18650 lithium ion battery</figcaption>
|
||||
</figure>
|
||||
|
@ -231,18 +220,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v2.png" /></p>
|
||||
|
||||
|
||||
<div class="do dp ia">
|
||||
<div class="en r eg eo">
|
||||
<div class="is r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/50/0*QoFfkgvS8BQ136jt.png?q=20"
|
||||
width="400" height="488" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="400" height="488" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/800/0*QoFfkgvS8BQ136jt.png"
|
||||
width="400" height="488" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="ax eu ev ew ex dq do dp ey ez as cx">Tomato Crop and Temperature Sensors on Moon
|
||||
Base One</figcaption>
|
||||
</figure>
|
||||
|
@ -273,16 +251,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v3.gif" /></p>
|
||||
|
||||
|
||||
<div class="en r eg eo">
|
||||
<div class="iz r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/freeze/max/60/1*3h5RTArjg9MSQ0aprfnjHA.gif?q=20"
|
||||
width="1466" height="454" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="1466" height="454" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/2932/1*3h5RTArjg9MSQ0aprfnjHA.gif"
|
||||
width="1466" height="454" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="ax eu ev ew ex dq do dp ey ez as cx">Create programs for IoT devices… Just by
|
||||
dragging and dropping!</figcaption>
|
||||
</figure>
|
||||
|
@ -294,20 +263,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v4.jpeg" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="do dp ja">
|
||||
<div class="en r eg eo">
|
||||
<div class="jg r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/40/1*imGvN_gqrPv2t5Qv2RKOhg.jpeg?q=20"
|
||||
width="1583" height="2330" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="1583" height="2330" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/3166/1*imGvN_gqrPv2t5Qv2RKOhg.jpeg"
|
||||
width="1583" height="2330" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="ax eu ev ew ex dq do dp ey ez as cx">STM32 Blue Pill, the $2 microcontroller inside
|
||||
our IoT sensor gadget. Powered by a 18650 lithium ion battery (in pink). Connected to NB-IoT network
|
||||
via a Quectel BC95-G Global NB-IoT module (top left).</figcaption>
|
||||
|
@ -362,18 +318,6 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v5.png" /></p>
|
||||
|
||||
|
||||
<div class="do dp kj">
|
||||
<div class="en r eg eo">
|
||||
<div class="kk r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/46/1*gs5tcPVH-a7C7P9-a_b2UQ.png?q=20"
|
||||
width="240" height="310" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="240" height="310" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/480/1*gs5tcPVH-a7C7P9-a_b2UQ.png"
|
||||
width="240" height="310" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</figure>
|
||||
<p id="a9d8" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">2️⃣ Launch Visual Studio Code</p>
|
||||
<p id="0bb8" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">Click <code
|
||||
|
@ -388,16 +332,7 @@
|
|||
|
||||
|
||||
|
||||
<div class="en r eg eo">
|
||||
<div class="kp r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*NXF9cW-NQS7kcd8d1huhAQ.png?q=20"
|
||||
width="1800" height="50" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="1800" height="50" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/3600/1*NXF9cW-NQS7kcd8d1huhAQ.png"
|
||||
width="1800" height="50" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
</div>
|
||||
<div class="n p">
|
||||
|
@ -409,18 +344,7 @@
|
|||
|
||||
|
||||
|
||||
<div class="do dp kq">
|
||||
<div class="en r eg eo">
|
||||
<div class="kr r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*ZpUI22Q8p8E24nR6SvLICA.png?q=20"
|
||||
width="339" height="262" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="339" height="262" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/678/1*ZpUI22Q8p8E24nR6SvLICA.png"
|
||||
width="339" height="262" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="0cc5" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">3️⃣ Search for <code
|
||||
class="eo kl km kn ko b">"visual embedded rust"</code> with quotes</p>
|
||||
|
@ -440,16 +364,6 @@
|
|||
|
||||
|
||||
|
||||
<div class="en r eg eo">
|
||||
<div class="kp r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*NXF9cW-NQS7kcd8d1huhAQ.png?q=20"
|
||||
width="1800" height="50" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="1800" height="50" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/3600/1*NXF9cW-NQS7kcd8d1huhAQ.png"
|
||||
width="1800" height="50" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</figure>
|
||||
</div>
|
||||
<div class="n p">
|
||||
|
@ -460,18 +374,6 @@
|
|||
|
||||
|
||||
|
||||
<div class="do dp ks">
|
||||
<div class="en r eg eo">
|
||||
<div class="kt r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*iWDa5h_NRVg5p37WFNZmrw.png?q=20"
|
||||
width="356" height="143" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="356" height="143" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/712/1*iWDa5h_NRVg5p37WFNZmrw.png"
|
||||
width="356" height="143" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</figure>
|
||||
<p id="d0b5" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">4️⃣ Click <code
|
||||
class="eo kl km kn ko b">File → Open</code> to open any folder</p>
|
||||
|
@ -485,16 +387,7 @@
|
|||
|
||||
|
||||
|
||||
<div class="en r eg eo">
|
||||
<div class="kp r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*NXF9cW-NQS7kcd8d1huhAQ.png?q=20"
|
||||
width="1800" height="50" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="1800" height="50" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/3600/1*NXF9cW-NQS7kcd8d1huhAQ.png"
|
||||
width="1800" height="50" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
</div>
|
||||
<div class="n p">
|
||||
|
@ -504,18 +397,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v8.png" /></p>
|
||||
|
||||
|
||||
<div class="do dp ku">
|
||||
<div class="en r eg eo">
|
||||
<div class="kv r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/freeze/max/60/1*n9lSOx6m98HaigB5H0e11Q.gif?q=20"
|
||||
width="457" height="225" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="457" height="225" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/914/1*n9lSOx6m98HaigB5H0e11Q.gif"
|
||||
width="457" height="225" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="3702" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">5️⃣ In the <code
|
||||
class="eo kl km kn ko b">Explorer → (Folder Name)</code> pane at top left, create a new Rust source
|
||||
|
@ -528,16 +410,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/h0.png" /></p>
|
||||
|
||||
|
||||
<div class="en r eg eo">
|
||||
<div class="kp r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*NXF9cW-NQS7kcd8d1huhAQ.png?q=20"
|
||||
width="1800" height="50" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="1800" height="50" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/3600/1*NXF9cW-NQS7kcd8d1huhAQ.png"
|
||||
width="1800" height="50" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
</div>
|
||||
<div class="n p">
|
||||
|
@ -547,18 +420,6 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v9.png" /></p>
|
||||
|
||||
|
||||
<div class="do dp kw">
|
||||
<div class="en r eg eo">
|
||||
<div class="kx r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*RgSNXzEWNZPjVrTuDtjNQQ.png?q=20"
|
||||
width="317" height="137" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="317" height="137" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/634/1*RgSNXzEWNZPjVrTuDtjNQQ.png"
|
||||
width="317" height="137" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</figure>
|
||||
<p id="0692" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">6️⃣ Edit the Rust source file.
|
||||
Click <code class="eo kl km kn ko b">Visual Editor</code> at top right</p>
|
||||
|
@ -570,16 +431,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/h0.png" /></p>
|
||||
|
||||
|
||||
<div class="en r eg eo">
|
||||
<div class="kp r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*NXF9cW-NQS7kcd8d1huhAQ.png?q=20"
|
||||
width="1800" height="50" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="1800" height="50" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/3600/1*NXF9cW-NQS7kcd8d1huhAQ.png"
|
||||
width="1800" height="50" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
</div>
|
||||
<div class="n p">
|
||||
|
@ -589,18 +441,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v10.png" /></p>
|
||||
|
||||
|
||||
<div class="do dp ky">
|
||||
<div class="en r eg eo">
|
||||
<div class="kz r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*kgaHNsAoOGdxVwKHz1kvqw.png?q=20"
|
||||
width="534" height="160" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="534" height="160" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1068/1*kgaHNsAoOGdxVwKHz1kvqw.png"
|
||||
width="534" height="160" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="6bcd" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">7️⃣ When prompted to populate the
|
||||
visual program into the Rust source file, click <code class="eo kl km kn ko b">OK</code></p>
|
||||
|
@ -618,21 +459,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v11.png" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="do dp li">
|
||||
<div class="en r eg eo">
|
||||
<div class="ll r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*e7siyhVjJHd2XzCjWb_YUg.png?q=20"
|
||||
width="1983" height="1202" role="presentation" /></div><img
|
||||
class="ei ej ds t u ek ak et" width="1983" height="1202"
|
||||
role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/3966/1*e7siyhVjJHd2XzCjWb_YUg.png"
|
||||
width="1983" height="1202" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="ax eu ev ew ex dq do dp ey ez as cx">Editing a Visual Embedded Rust program with
|
||||
Visual Studio Code</figcaption>
|
||||
</figure>
|
||||
|
@ -650,20 +477,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v12.png" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="do dp lm">
|
||||
<div class="en r eg eo">
|
||||
<div class="ln r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*GzYhmZi0uZBW9rcO7v6Viw.png?q=20"
|
||||
width="718" height="404" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="718" height="404" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1436/1*GzYhmZi0uZBW9rcO7v6Viw.png"
|
||||
width="718" height="404" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="7df5" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz"><code
|
||||
class="eo kl km kn ko b">On Start</code> marks the start of the program. Here we define some
|
||||
|
@ -697,18 +511,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v13.png" /></p>
|
||||
|
||||
|
||||
<div class="do dp lo">
|
||||
<div class="en r eg eo">
|
||||
<div class="lp r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*htFGl-28HU0xooByThOMTw.png?q=20"
|
||||
width="489" height="210" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="489" height="210" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/978/1*htFGl-28HU0xooByThOMTw.png"
|
||||
width="489" height="210" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="a9c2" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">Next we call the function <code
|
||||
class="eo kl km kn ko b">start_sensor_listener</code> to begin polling the temperature sensor every
|
||||
|
@ -718,18 +521,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v14.png" /></p>
|
||||
|
||||
|
||||
<div class="do dp lq">
|
||||
<div class="en r eg eo">
|
||||
<div class="lr r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*kd6ie-FByW8AwZ3oIHM1eQ.png?q=20"
|
||||
width="611" height="136" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="611" height="136" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1222/1*kd6ie-FByW8AwZ3oIHM1eQ.png"
|
||||
width="611" height="136" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="f2ad" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">Finally we call <code
|
||||
class="eo kl km kn ko b">start_server_transport</code>, which is a system function defined in the
|
||||
|
@ -751,18 +543,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v15.png" /></p>
|
||||
|
||||
|
||||
<div class="do dp ls">
|
||||
<div class="en r eg eo">
|
||||
<div class="lt r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/34/1*-PZ6Vg-9YvgUyxvtTSuODw.png?q=20"
|
||||
width="195" height="342" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="195" height="342" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/390/1*-PZ6Vg-9YvgUyxvtTSuODw.png"
|
||||
width="195" height="342" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="ax eu ev ew ex dq do dp ey ez as cx">Blocks Bar</figcaption>
|
||||
</figure>
|
||||
<p id="6dbf" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz"><em class="it">How was the
|
||||
|
@ -806,20 +587,6 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v16.png" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="do dp lv">
|
||||
<div class="en r eg eo">
|
||||
<div class="lw r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*GyoedQwHnF9JwWkmObTkcQ.png?q=20"
|
||||
width="720" height="588" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="720" height="588" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1440/1*GyoedQwHnF9JwWkmObTkcQ.png"
|
||||
width="720" height="588" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</figure>
|
||||
<p id="1e30" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz"><code
|
||||
class="eo kl km kn ko b">To start_sensor_listener With ...</code> is the way that we define
|
||||
|
@ -846,18 +613,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v17.png" /></p>
|
||||
|
||||
|
||||
<div class="do dp lx">
|
||||
<div class="en r eg eo">
|
||||
<div class="ly r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*TXPgMgC7A3-Z6s8i68dpGg.png?q=20"
|
||||
width="627" height="131" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="627" height="131" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1254/1*TXPgMgC7A3-Z6s8i68dpGg.png"
|
||||
width="627" height="131" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="c755" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">Next we call the system function
|
||||
<code class="eo kl km kn ko b">set_poll_rate_ms</code>, defined in the <code
|
||||
|
@ -879,20 +635,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v18.png" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="do dp lv">
|
||||
<div class="en r eg eo">
|
||||
<div class="lz r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*3ExZd-O3XhqfmptdqLgytA.png?q=20"
|
||||
width="720" height="146" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="720" height="146" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1440/1*3ExZd-O3XhqfmptdqLgytA.png"
|
||||
width="720" height="146" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="286b" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">We call function <code
|
||||
class="eo kl km kn ko b">mgr_find_next_bydevname</code> (also from the <code
|
||||
|
@ -906,20 +649,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v19.png" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="do dp ma">
|
||||
<div class="en r eg eo">
|
||||
<div class="mb r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*f4ci8vWQ5As-aOo1ARO80g.png?q=20"
|
||||
width="635" height="109" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="635" height="109" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1270/1*f4ci8vWQ5As-aOo1ARO80g.png"
|
||||
width="635" height="109" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="1844" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">Before that, we check the sensor
|
||||
driver was actually found. If we had misspelt the name of the sensor, the sensor driver would not be
|
||||
|
@ -931,20 +661,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v20.png" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="do dp lv">
|
||||
<div class="en r eg eo">
|
||||
<div class="mc r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*kJG1bji20Rs1vRaCRfNRvA.png?q=20"
|
||||
width="720" height="168" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="720" height="168" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1440/1*kJG1bji20Rs1vRaCRfNRvA.png"
|
||||
width="720" height="168" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="2db8" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">We create a sensor listener
|
||||
(stored as <code class="eo kl km kn ko b">listener</code>) by calling the system function <code
|
||||
|
@ -959,20 +676,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v21.png" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="do dp lv">
|
||||
<div class="en r eg eo">
|
||||
<div class="md r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*Kg3Zbk3Zr5D_ekCK2ZEPpQ.png?q=20"
|
||||
width="720" height="196" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="720" height="196" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1440/1*Kg3Zbk3Zr5D_ekCK2ZEPpQ.png"
|
||||
width="720" height="196" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="5b95" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">To register the Listener Function
|
||||
in the system, we call the system function <code class="eo kl km kn ko b">register_listener</code>,
|
||||
|
@ -1017,18 +721,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v22.png" /></p>
|
||||
|
||||
|
||||
<div class="do dp mf">
|
||||
<div class="en r eg eo">
|
||||
<div class="mg r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*-VO5s5TGf2_yk3V3GkciLA.png?q=20"
|
||||
width="621" height="300" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="621" height="300" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1242/1*-VO5s5TGf2_yk3V3GkciLA.png"
|
||||
width="621" height="300" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="60ec" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">How shall we handle the
|
||||
temperature data that has been read? <code class="eo kl km kn ko b">handle_sensor_data</code> passes
|
||||
|
@ -1057,20 +750,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v23.png" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="do dp mh">
|
||||
<div class="en r eg eo">
|
||||
<div class="mi r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*oi1VEXwjOpqhra6sUDW0IA.png?q=20"
|
||||
width="711" height="468" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="711" height="468" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1422/1*oi1VEXwjOpqhra6sUDW0IA.png"
|
||||
width="711" height="468" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="5b88" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">The final function in our
|
||||
program, <code class="eo kl km kn ko b">send_sensor_data</code>, is called by <code
|
||||
|
@ -1084,18 +764,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v24.png" /></p>
|
||||
|
||||
|
||||
<div class="do dp mj">
|
||||
<div class="en r eg eo">
|
||||
<div class="mk r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*E9yU8tCAWZtn1T2NgG6HWQ.png?q=20"
|
||||
width="558" height="81" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="558" height="81" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1116/1*E9yU8tCAWZtn1T2NgG6HWQ.png"
|
||||
width="558" height="81" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="4e87" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">We call <code
|
||||
class="eo kl km kn ko b">get_device_id</code> from the <code
|
||||
|
@ -1109,20 +778,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v25.png" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="do dp ml">
|
||||
<div class="en r eg eo">
|
||||
<div class="mm r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*X53idZPud0DTW8834OqLOg.png?q=20"
|
||||
width="686" height="103" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="686" height="103" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1372/1*X53idZPud0DTW8834OqLOg.png"
|
||||
width="686" height="103" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="9a98" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">Next we call <code
|
||||
class="eo kl km kn ko b">init_server_post</code> (also from <code
|
||||
|
@ -1138,20 +794,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v26.png" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="do dp mh">
|
||||
<div class="en r eg eo">
|
||||
<div class="mn r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*i5_t_16cpHwTj_Fq9WGHig.png?q=20"
|
||||
width="711" height="116" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="711" height="116" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1422/1*i5_t_16cpHwTj_Fq9WGHig.png"
|
||||
width="711" height="116" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="85d1" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">Only when <code
|
||||
class="eo kl km kn ko b">network_ready</code> is true, which means that the device has connected to
|
||||
|
@ -1161,20 +804,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v27.png" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="do dp mh">
|
||||
<div class="en r eg eo">
|
||||
<div class="mn r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*2iS1mHQjgFXDW7rNsCaFdw.png?q=20"
|
||||
width="711" height="116" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="711" height="116" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1422/1*2iS1mHQjgFXDW7rNsCaFdw.png"
|
||||
width="711" height="116" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="19b4" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz"><a
|
||||
href="https://en.wikipedia.org/wiki/Constrained_Application_Protocol"
|
||||
|
@ -1194,20 +824,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v28.png" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="do dp mh">
|
||||
<div class="en r eg eo">
|
||||
<div class="mo r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*9WyhaNgPYTt2hmB22Rj-2A.png?q=20"
|
||||
width="711" height="114" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="711" height="114" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1422/1*9WyhaNgPYTt2hmB22Rj-2A.png"
|
||||
width="711" height="114" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="f1be" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">The CoAP Message is transmitted
|
||||
only when function <code class="eo kl km kn ko b">do_server_post</code> is called. Again this
|
||||
|
@ -1228,18 +845,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v29.png" /></p>
|
||||
|
||||
|
||||
<div class="do dp mp">
|
||||
<div class="en r eg eo">
|
||||
<div class="mq r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*0YduIac1OZACa6wwMLd8rw.png?q=20"
|
||||
width="564" height="140" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="564" height="140" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1128/1*0YduIac1OZACa6wwMLd8rw.png"
|
||||
width="564" height="140" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="fcd5" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">At the end of the function, we
|
||||
display a URL in the Blue Pill log that contains the Device ID. The URL looks like this: <code
|
||||
|
@ -1265,20 +871,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v30.png" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="do dp mu">
|
||||
<div class="en r eg eo">
|
||||
<div class="mv r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/36/1*j4xsyIeTRT0xlPBC4seOWg.png?q=20"
|
||||
width="724" height="1175" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="724" height="1175" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1448/1*j4xsyIeTRT0xlPBC4seOWg.png"
|
||||
width="724" height="1175" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="1083" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">And that’s the complete program
|
||||
for an IoT sensor device that reads the temperature sensor every 10 seconds and transmits the data to
|
||||
|
@ -1324,20 +917,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v31.png" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="do dp mw">
|
||||
<div class="en r eg eo">
|
||||
<div class="mx r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*4nqHCqZWkKcjbrOeNDHf3w.png?q=20"
|
||||
width="813" height="510" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="813" height="510" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1626/1*4nqHCqZWkKcjbrOeNDHf3w.png"
|
||||
width="813" height="510" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="aafc" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">3️⃣ Delete the files <code
|
||||
class="eo kl km kn ko b">app_network.rs</code> and <code
|
||||
|
@ -1351,20 +931,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v32.png" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="do dp my">
|
||||
<div class="en r eg eo">
|
||||
<div class="mz r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*4THS8R2gTk7qrGQ6U5-NKw.png?q=20"
|
||||
width="764" height="449" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="764" height="449" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1528/1*4THS8R2gTk7qrGQ6U5-NKw.png"
|
||||
width="764" height="449" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="6e0e" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">If you wish to make any changes
|
||||
to the Visual Program, use the Visual Editor to edit the file <code
|
||||
|
@ -1389,21 +956,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v33.png" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="do dp na">
|
||||
<div class="en r eg eo">
|
||||
<div class="lu r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*k6ChUPU2giippFTWlGPK6w.jpeg?q=20"
|
||||
width="2048" height="1536" role="presentation" /></div><img
|
||||
class="ei ej ds t u ek ak et" width="2048" height="1536"
|
||||
role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/4096/1*k6ChUPU2giippFTWlGPK6w.jpeg"
|
||||
width="2048" height="1536" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="ax eu ev ew ex dq do dp ey ez as cx">Blue Pill connected to Quectel BC95-G NB-IoT
|
||||
module and ST-Link V2</figcaption>
|
||||
</figure>
|
||||
|
@ -1433,20 +986,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v34.png" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="do dp ng">
|
||||
<div class="en r eg eo">
|
||||
<div class="nh r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*lpV6FH9Y_nnmdipPGxL-eQ.jpeg?q=20"
|
||||
width="2071" height="1380" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="2071" height="1380" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/4142/1*lpV6FH9Y_nnmdipPGxL-eQ.jpeg"
|
||||
width="2071" height="1380" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<figcaption class="ax eu ev ew ex dq do dp ey ez as cx">Blue Pill and ST-Link connected to USB port
|
||||
</figcaption>
|
||||
</figure>
|
||||
|
@ -1461,20 +1001,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy2/h0.png" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="do dp ni">
|
||||
<div class="en r eg eo">
|
||||
<div class="kp r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*pmGFQ2cRpqypaNDM1UYwEw.png?q=20"
|
||||
width="1800" height="50" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="1800" height="50" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/3600/1*pmGFQ2cRpqypaNDM1UYwEw.png"
|
||||
width="1800" height="50" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="8762" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">3️⃣ Click <code
|
||||
class="eo kl km kn ko b">Terminal → Run Task → [4] Load bluepill_boot</code></p>
|
||||
|
@ -1512,18 +1039,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v35.png" /></p>
|
||||
|
||||
|
||||
<div class="do dp nj">
|
||||
<div class="en r eg eo">
|
||||
<div class="nk r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/0*vbKIy_e12ucVq-Zi.png?q=20"
|
||||
width="450" height="256" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="450" height="256" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/900/0*vbKIy_e12ucVq-Zi.png"
|
||||
width="450" height="256" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="3235" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">2️⃣ Click <code
|
||||
class="eo kl km kn ko b">View → Output</code></p>
|
||||
|
@ -1534,36 +1050,13 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/a0.png" /></p>
|
||||
|
||||
|
||||
<div class="do dp nl">
|
||||
<div class="en r eg eo">
|
||||
<div class="nm r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/0*yicQ-jGRy0mqaKEb.png?q=20"
|
||||
width="630" height="17" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="630" height="17" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1260/0*yicQ-jGRy0mqaKEb.png"
|
||||
width="630" height="17" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</figure>
|
||||
<figure class="ew ec et ig bv ih ii ij ik il bg im in io ip iq ir paragraph-image">
|
||||
|
||||
<p><img src="https://lupyuen.github.io/images/legacy/v36.png" /></p>
|
||||
|
||||
|
||||
<div class="do dp nn">
|
||||
<div class="en r eg eo">
|
||||
<div class="no r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/0*y8m3vlbokVYusqrK.png?q=20"
|
||||
width="405" height="260" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="405" height="260" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/810/0*y8m3vlbokVYusqrK.png"
|
||||
width="405" height="260" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="8d04" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">3️⃣ The debugger pauses at the
|
||||
line with <code class="eo kl km kn ko b">LoopCopyDataInit</code></p>
|
||||
|
@ -1574,36 +1067,13 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/a0.png" /></p>
|
||||
|
||||
|
||||
<div class="do dp nl">
|
||||
<div class="en r eg eo">
|
||||
<div class="nm r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/0*JZUHmhP3JMtTFYG3.png?q=20"
|
||||
width="630" height="17" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="630" height="17" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1260/0*JZUHmhP3JMtTFYG3.png"
|
||||
width="630" height="17" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<figure class="ew ec et ig bv ih ii ij ik il bg im in io ip iq ir paragraph-image">
|
||||
|
||||
<p><img src="https://lupyuen.github.io/images/legacy/v37.png" /></p>
|
||||
|
||||
|
||||
<div class="do dp nj">
|
||||
<div class="en r eg eo">
|
||||
<div class="np r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/0*ybws4YVgC0gV7ZMR.png?q=20"
|
||||
width="450" height="278" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="450" height="278" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/900/0*ybws4YVgC0gV7ZMR.png"
|
||||
width="450" height="278" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</figure>
|
||||
<p id="04a7" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">4️⃣ The debugger pauses next at
|
||||
the <code class="eo kl km kn ko b">main()</code> function.</p>
|
||||
|
@ -1614,18 +1084,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/a0.png" /></p>
|
||||
|
||||
|
||||
<div class="do dp nl">
|
||||
<div class="en r eg eo">
|
||||
<div class="nm r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/0*tVynbKVgf40Aik7X.png?q=20"
|
||||
width="630" height="17" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="630" height="17" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1260/0*tVynbKVgf40Aik7X.png"
|
||||
width="630" height="17" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="5fe3" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">Our Blue Pill should now poll its
|
||||
internal temperature sensor every 10 seconds. It should also transmit the temperature data to the CoAP
|
||||
|
@ -1663,20 +1122,7 @@
|
|||
<p><img src="https://lupyuen.github.io/images/legacy/v38.png" /></p>
|
||||
|
||||
|
||||
<div class="ee ef eg eh ak">
|
||||
<div class="do dp nq">
|
||||
<div class="en r eg eo">
|
||||
<div class="nr r">
|
||||
<div class="ei ej ds t u ek ak cd el em"><img class="ds t u ek ak eq er es"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/60/1*uacz8pjFqJFCuGa1V8Q2Ag.png?q=20"
|
||||
width="816" height="773" role="presentation" /></div><img class="ei ej ds t u ek ak et"
|
||||
width="816" height="773" role="presentation" /><noscript><img class="ds t u ek ak"
|
||||
src="https://web.archive.org/web/20191204194331im_/https://miro.medium.com/max/1632/1*uacz8pjFqJFCuGa1V8Q2Ag.png"
|
||||
width="816" height="773" role="presentation" /></noscript>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</figure>
|
||||
<p id="4d19" class="hm hn fd at ho b hp hq hr hs ht hu hv hw hx hy hz">Upon clicking the URL <code
|
||||
class="eo kl km kn ko b">https://blue-pill-geolocate.appspot.com/?device=5cfca8c…</code> that’s
|
||||
|
|
Loading…
Reference in a new issue