Public Access
Site: the devlog, the blog's roro9stack posts in the site's style; Devlog replaces Blog in the navigation
Site / build (pull_request) Successful in 9s
Site / build (pull_request) Successful in 9s
Seven posts imported into site/content/devlog/ with their text unchanged, links between them pointing to /devlog/, and shortcodes (sign, cast, steps, asides, folded sections, diagrams, captions) restyled in the site's palette. The 17 inline SVG diagrams carried <style> blocks and style attributes the site's Content-Security-Policy refuses: their rules moved to devlog-diagrams.css, and a diagram's minimum width is a class. An Atom feed at /devlog/atom.xml. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EhqxQ49eCju4CzKYNjZzwT
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 330" role="img" aria-label="The end of a multi-block write to an SD card, as a timeline. The card accepts the last block, receives the Stop Tran token, takes about one byte of clock before it signals busy, stays busy while it programs, then is ready. The original driver sends Stop Tran, deselects and selects the card, and reads one byte to test for ready: that byte arrives before the card has signalled busy, reads 0xFF, and is taken as ready. The driver then sends the status command CMD13 while the card is still programming, gets 0xFF or 0x1F back, and reports a write error. The fixed driver sends a dummy byte after Stop Tran and another after selecting the card, so its ready test sees busy, waits, and sends CMD13 once the card is ready: status 0x00, the write succeeded.">
|
||||
<g font-family="JetBrains Mono, ui-monospace, monospace" fill="currentColor" font-size="10">
|
||||
<text x="16" y="24" font-size="12" font-weight="600">The card</text>
|
||||
<rect class="sd-box" x="16" y="34" width="150" height="40" rx="5"/>
|
||||
<text x="24" y="50">last block</text><text x="24" y="64" class="sd-dim">answers 0x05: accepted</text>
|
||||
<rect class="sd-box" x="170" y="34" width="96" height="40" rx="5"/>
|
||||
<text x="178" y="50">Stop Tran</text><text x="178" y="64" class="sd-dim">0xFD</text>
|
||||
<rect class="sd-bad" x="270" y="34" width="88" height="40" rx="5"/>
|
||||
<text x="278" y="50">not busy yet</text><text x="278" y="64" class="sd-dim">reads 0xFF</text>
|
||||
<rect class="sd-busy" x="362" y="34" width="240" height="40" rx="5"/>
|
||||
<text x="370" y="50">busy: programming the blocks</text><text x="370" y="64" class="sd-dim">reads 0x00</text>
|
||||
<rect class="sd-box" x="606" y="34" width="138" height="40" rx="5"/>
|
||||
<text x="614" y="50">ready</text><text x="614" y="64" class="sd-dim">reads 0xFF</text>
|
||||
|
||||
<line class="sd-guide" x1="314" y1="76" x2="314" y2="262"/>
|
||||
<line class="sd-guide" x1="606" y1="76" x2="606" y2="262"/>
|
||||
|
||||
<text x="16" y="112" font-size="12" font-weight="600">The driver, as shipped</text>
|
||||
<rect class="sd-box" x="170" y="122" width="96" height="40" rx="5"/>
|
||||
<text x="178" y="138">Stop Tran,</text><text x="178" y="152" class="sd-dim">then reselect</text>
|
||||
<rect class="sd-bad" x="270" y="122" width="88" height="40" rx="5"/>
|
||||
<text x="278" y="138">ready?</text><text class="f-red" x="278" y="152">0xFF: yes</text>
|
||||
<rect class="sd-bad" x="362" y="122" width="150" height="40" rx="5"/>
|
||||
<text x="370" y="138">CMD13: status?</text><text class="f-red" x="370" y="152">0xFF or 0x1F: "error"</text>
|
||||
<text class="f-red" x="522" y="138">the write "failed"</text>
|
||||
<text class="f-red" x="522" y="152">(it hadn't)</text>
|
||||
|
||||
<text x="16" y="200" font-size="12" font-weight="600">With two dummy bytes</text>
|
||||
<rect class="sd-box" x="170" y="210" width="96" height="40" rx="5"/>
|
||||
<text x="178" y="226">Stop Tran</text>
|
||||
<rect class="sd-new" x="270" y="210" width="88" height="40" rx="5"/>
|
||||
<text x="278" y="226">dummy,</text><text x="278" y="240">dummy</text>
|
||||
<rect class="sd-busy" x="362" y="210" width="240" height="40" rx="5"/>
|
||||
<text x="370" y="226">ready? 0x00: no. Waits.</text><text x="370" y="240" class="sd-dim">up to 500 ms; it took at most 107</text>
|
||||
<rect class="sd-good" x="606" y="210" width="138" height="40" rx="5"/>
|
||||
<text x="614" y="226">CMD13: status?</text><text class="f-green" x="614" y="240">0x00: written</text>
|
||||
|
||||
<text x="16" y="290" class="sd-dim">About once in 1,500 writes, the first byte after reselecting came before the card had raised busy.</text>
|
||||
<text x="16" y="306" class="sd-dim">Time runs left to right; not to scale.</text>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.6 KiB |
Reference in New Issue
Block a user