Files
2026-05-02 16:06:42 -04:00

90 lines
4.2 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 800">
<style>
.bg{fill:#0a0a0f}.pnl{fill:#12121a;stroke:#1a1a2e}.hdr{fill:#12121a}
.title{font:bold 42px 'Courier New',monospace;fill:#00ff41}
.sub{font:bold 28px 'Courier New',monospace;fill:#00d4ff}
.txt{font:24px 'Courier New',monospace;fill:#c0c0c0}
.dim{font:20px 'Courier New',monospace;fill:#888}
.grn{font:bold 24px 'Courier New',monospace;fill:#00ff41}
.red{font:bold 24px 'Courier New',monospace;fill:#ff0040}
.cyn{font:bold 24px 'Courier New',monospace;fill:#00d4ff}
.amb{font:bold 24px 'Courier New',monospace;fill:#ffaa00}
.badge{stroke:#00ff41;rx:14}
</style>
<rect class="bg" width="1200" height="800"/>
<!-- Title -->
<text x="600" y="52" text-anchor="middle" class="title">XIP Flash Model</text>
<text x="600" y="88" text-anchor="middle" class="dim">Execute-in-Place</text>
<!-- Left Panel: Flow Diagram -->
<rect x="30" y="105" width="540" height="675" class="pnl" rx="8"/>
<text x="300" y="148" text-anchor="middle" class="sub">Execute-In-Place</text>
<line x1="50" y1="163" x2="550" y2="163" stroke="#1a1a2e"/>
<!-- External Flash chip -->
<rect x="120" y="190" width="300" height="65" rx="6" fill="#1a1a0f" stroke="#ffaa00" stroke-width="2"/>
<text x="270" y="223" text-anchor="middle" class="amb">QSPI Flash</text>
<text x="270" y="245" text-anchor="middle" class="dim">External 16MB</text>
<!-- Arrow down -->
<line x1="270" y1="255" x2="270" y2="300" stroke="#ffaa00" stroke-width="3"/>
<polygon points="258,300 270,325 282,300" fill="#ffaa00"/>
<!-- QSPI Controller -->
<rect x="120" y="330" width="300" height="55" rx="6" fill="#0f0f1a" stroke="#00d4ff" stroke-width="2"/>
<text x="270" y="362" text-anchor="middle" class="cyn">QSPI Controller</text>
<!-- Arrow down -->
<line x1="270" y1="385" x2="270" y2="420" stroke="#00d4ff" stroke-width="3"/>
<polygon points="258,420 270,445 282,420" fill="#00d4ff"/>
<!-- XIP Cache -->
<rect x="120" y="450" width="300" height="65" rx="6" fill="#0f1a0f" stroke="#00ff41" stroke-width="2"/>
<text x="270" y="483" text-anchor="middle" class="grn">XIP Cache</text>
<text x="270" y="505" text-anchor="middle" class="dim">16KB cache</text>
<!-- Arrow down -->
<line x1="270" y1="515" x2="270" y2="555" stroke="#00ff41" stroke-width="3"/>
<polygon points="258,555 270,580 282,555" fill="#00ff41"/>
<!-- CPU -->
<rect x="120" y="585" width="300" height="65" rx="6" fill="#1a0f0f" stroke="#ff0040" stroke-width="2"/>
<text x="270" y="618" text-anchor="middle" class="red">Cortex-M33 CPU</text>
<text x="270" y="640" text-anchor="middle" class="dim">Fetches via PC</text>
<!-- Mapped address note -->
<text x="300" y="710" text-anchor="middle" class="txt">Mapped at</text>
<text x="300" y="745" text-anchor="middle" class="amb">0x1000_0000</text>
<!-- Right Panel: Details -->
<rect x="600" y="105" width="570" height="675" class="pnl" rx="8"/>
<text x="885" y="148" text-anchor="middle" class="sub">Key Details</text>
<line x1="620" y1="163" x2="1150" y2="163" stroke="#1a1a2e"/>
<text x="625" y="205" class="grn">What is XIP?</text>
<text x="625" y="240" class="txt">Code stays in flash</text>
<text x="625" y="272" class="txt">CPU reads it as if</text>
<text x="625" y="304" class="txt">it were normal memory</text>
<text x="625" y="336" class="dim">No copy to SRAM needed</text>
<line x1="620" y1="364" x2="1150" y2="364" stroke="#1a1a2e"/>
<text x="625" y="404" class="cyn">QSPI Interface</text>
<text x="625" y="439" class="txt">4 data lines</text>
<text x="625" y="471" class="txt">Fast serial flash</text>
<text x="625" y="503" class="dim">CLK, CS, IO0-IO3</text>
<line x1="620" y1="531" x2="1150" y2="531" stroke="#1a1a2e"/>
<text x="625" y="571" class="amb">Cache Behavior</text>
<text x="625" y="603" class="txt">Used for XIP flash reads</text>
<text x="625" y="633" class="dim">(code + const data at 0x1000....)</text>
<text x="625" y="663" class="txt">Not used for SRAM/peripherals</text>
<text x="625" y="693" class="dim">or during flash program/erase</text>
<line x1="620" y1="698" x2="1150" y2="698" stroke="#1a1a2e"/>
<text x="625" y="738" class="red">RE Insight</text>
<text x="625" y="773" class="dim">Dump flash via SWD</text>
</svg>