more slides
Signed-off-by: Sean Cross <sean@xobs.io>
This commit is contained in:
parent
bd13845287
commit
b23fa74dba
11
.gitignore
vendored
Normal file
11
.gitignore
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
.idea/
|
||||
*.iml
|
||||
*.iws
|
||||
*.eml
|
||||
out/
|
||||
.DS_Store
|
||||
.svn
|
||||
log/*.log
|
||||
tmp/**
|
||||
node_modules/
|
||||
.sass-cache
|
7
.npmignore
Normal file
7
.npmignore
Normal file
@ -0,0 +1,7 @@
|
||||
/test
|
||||
/examples
|
||||
.github
|
||||
.gulpfile
|
||||
.sass-cache
|
||||
gulpfile.js
|
||||
CONTRIBUTING.md
|
BIN
img/esp32s3-more-boot.png
Normal file
BIN
img/esp32s3-more-boot.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.5 MiB |
BIN
img/esp32s3-uart.png
Normal file
BIN
img/esp32s3-uart.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 469 KiB |
BIN
img/gdb-with-elf.png
Normal file
BIN
img/gdb-with-elf.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 737 KiB |
BIN
img/memory-maps.png
Normal file
BIN
img/memory-maps.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 311 KiB |
83
index.html
83
index.html
@ -18,12 +18,12 @@
|
||||
<body>
|
||||
<div class="reveal">
|
||||
<div class="footer">
|
||||
<a class="url" href="https://p.xobs.io/fa23/">p.xobs.io/fa23</a>
|
||||
<a class="url" href="https://p.xobs.io/c23/">p.xobs.io/fa23</a>
|
||||
</div>
|
||||
<div class="slides">
|
||||
<section>
|
||||
<h2>Emulating the Badge Under Renode</h2>
|
||||
<h2>(Eventually)</h2>
|
||||
<h3>(Eventually)</h3>
|
||||
<br />
|
||||
<h3>Sean "xobs" Cross</h3>
|
||||
</section>
|
||||
@ -261,39 +261,98 @@
|
||||
<h2>It Doesn't</h2>
|
||||
</section>
|
||||
<section>
|
||||
<h2>Xtensa is a New Architecture</h2>
|
||||
<h2>Xtensa is an Uncommon Architecture</h2>
|
||||
<ul>
|
||||
<li>Added support for ESP32 family</li>
|
||||
<li>Merged quickly</li>
|
||||
<li>Few others use Xtensa</li>
|
||||
<li>Audio DSPs</li>
|
||||
<li>Possibly Intel?</li>
|
||||
<li>NXP</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section>
|
||||
<h2>Extensive use of Boot ROM</h2>
|
||||
<ul>
|
||||
<li>Pulled ROM off device with esptool</li>
|
||||
<li>Load into RAM</li>
|
||||
<li>Set entrypoint</li>
|
||||
<img data-src="img/memory-maps.png">
|
||||
</ul>
|
||||
</section>
|
||||
<section>
|
||||
<h2>Add a serial port</h2>
|
||||
<h2>Extensive use of Boot ROM</h2>
|
||||
<ul>
|
||||
<pre><code class="wrap">$ esptool.py dump_mem \
|
||||
0x3ff90000 \
|
||||
65536 \
|
||||
irom.bin</code></pre>
|
||||
</ul>
|
||||
</section>
|
||||
<!-- <section>
|
||||
<ul>
|
||||
<li>Immediately get output</li>
|
||||
<li>Breaks immediately</li>
|
||||
</ul>
|
||||
</section> -->
|
||||
<section>
|
||||
<h2>Add a serial port</h2>
|
||||
<code><pre>
|
||||
namespace Antmicro.Renode.Peripherals.UART {
|
||||
public class ESP32_UART : UARTBase, IDoubleWordPeripheral,
|
||||
IKnownSize {
|
||||
private readonly DoubleWordRegisterCollection registers;
|
||||
public ESP32_UART(Machine machine) : base(machine) {
|
||||
registers = new DoubleWordRegisterCollection(this,
|
||||
new Dictionary<long, DoubleWordRegister> {
|
||||
{0x00, new DoubleWordRegister(this).WithValueField(0,8,
|
||||
writeCallback: (_, v) => TransmitCharacter((byte)v))}
|
||||
});
|
||||
}</code></code>
|
||||
</section>
|
||||
<section>
|
||||
<h2>Add a serial port</h2>
|
||||
<code><pre>
|
||||
{0x00, new DoubleWordRegister(this)
|
||||
.WithValueField(0, 8,
|
||||
writeCallback: (_, v) => TransmitCharacter((byte)v))}</code></code>
|
||||
</section>
|
||||
<section>
|
||||
<img data-src="img/esp32s3-uart.png">
|
||||
</section>
|
||||
<section>
|
||||
<h2>Load SVD file</h2>
|
||||
<pre><code>sysbus:
|
||||
init:
|
||||
ApplySVD @esp32s3.svd</code></pre>
|
||||
</section>
|
||||
<section>
|
||||
<h2>Load SVD file</h2>
|
||||
<pre><code style="word-wrap: break-word;">
|
||||
extmem: Unhandled read from offset 0x64.
|
||||
extmem: Unhandled write to offset 0x64, value 0x3.
|
||||
sysbus: Read from an unimplemented register SYSTEM:SYSCLK_CONF
|
||||
(0x600C0060), returning a value from SVD: 0x1. (3)
|
||||
sysbus: Read from an unimplemented register SYSTEM:PERIP_CLK_EN0
|
||||
(0x600C0018), returning a value from SVD: 0xF9C1E06F.
|
||||
sysbus: Write of value 0xF9C1E06F to an unimplemented register
|
||||
SYSTEM:PERIP_CLK_EN0 (0x600C0018) generated from SVD.
|
||||
sysbus: Read from an unimplemented register SYSTEM:PERIP_RST_EN0
|
||||
(0x600C0020), returning a value from SVD: 0x0.
|
||||
sysbus: Write of value 0x0 to an unimplemented register SYSTEM:PERIP_RST_EN0
|
||||
0x600C0020) generated from SVD.
|
||||
sysbus: Read from an unimplemented register SYSTEM:PERIP_RST_EN0
|
||||
(0x600C0020), returning a value from SVD: 0x0.
|
||||
sysbus: Write of value 0x4 to an unimplemented register SYSTEM:PERIP_RST_EN0 (0x600C0020) generated from SVD.
|
||||
</code></pre>
|
||||
</section>
|
||||
<section>
|
||||
<h2>Add Peripherals</h2>
|
||||
</section>
|
||||
<section>
|
||||
<h2>Slowly Advance</h2>
|
||||
<img data-src="img/esp32s3-more-boot.png">
|
||||
</section>
|
||||
<section>
|
||||
<h2>What's Left</h2>
|
||||
<h2>GDB with ELF</h2>
|
||||
<img data-src="img/gdb-with-elf.png">
|
||||
</section>
|
||||
<section>
|
||||
<h2>What's Left?</h2>
|
||||
<ul>
|
||||
<li>SPI Controller</li>
|
||||
<li>Interrupt Controller</li>
|
||||
@ -385,7 +444,7 @@
|
||||
multiplex: {
|
||||
// Example values. To generate your own, see the socket.io server instructions.
|
||||
secret: getQueryHash().s || null,
|
||||
id: '54917777254025e5',
|
||||
id: '863f0948d18284f3',
|
||||
url: 'https://p.xobs.io/'
|
||||
},
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user