reorder things a bit

Signed-off-by: Sean Cross <sean@xobs.io>
This commit is contained in:
2022-04-08 20:29:17 +08:00
parent 0ca6eb6963
commit b926658459
4 changed files with 103 additions and 109 deletions

View File

@ -86,12 +86,22 @@
<div class="slides">
<section>
<section>
<h2>Renode: Easy CI for your Weird Hardware</h2>
<h2>Renode: Easy Emulation for your Weird Hardware</h2>
<h3>Sean Cross</h3>
<p>Follow along at <a href="https://p.xobs.io/fa22">https://p.xobs.io/fa22</a></p>
</section>
<section>
<h2>Renode</h2>
<p>I find it a useful tool. Maybe you will, too!
<p>I find it a useful tool. Maybe you will, too!</p>
<img height="100" src="media/antmicro-logo-white.svg">
</section>
<section>
<h2>About Me: I Do Weird Hardware</h2>
<ul>
<li>Betrusted/Precursor: FPGA Secure Communications</li>
<li>Fomu: World's Smallest FPGA Dev Board</li>
<li>Orchard: Lights, Sounds, Captouch</li>
</ul>
</section>
<section>
<h2>What is "Weird Hardware"?</h2>
@ -101,15 +111,6 @@
<li>Hardware that uses ARM, i386, PowerPC, Risc-V, Sparc, or Xtensa</li>
</ul>
</section>
<section>
<h2>About Me: I Do Weird Hardware</h2>
<ul>
<li>Betrusted/Precursor: FPGA Secure Communications</li>
<li>Fomu: World's Smallest FPGA Dev Board</li>
<li>Novena: Open Source Laptop</li>
<li>Senoko: Open Source Power Board for Novena</li>
</ul>
</section>
<section>
<h2>Hardware with Embedded Software</h2>
<ul>
@ -121,22 +122,13 @@
<section>
<h2>About Renode</h2>
<ul>
<li>Whole-System Emulator</li>
<li>Supports concurrent emulation</li>
<li>Multi-Node Emulator</li>
<li>Extensible with C# and Python</li>
<li>Windows, Mac, Linux</li>
<li>MIT Licensed</li>
</ul>
</section>
<!-- <section>
<h2>About This Talk</h2>
<ul>
<li>Overview of Emulators</li>
<li>Oevrview of Weird Hardware</li>
<li>Cool things you can do</li>
</ul>
</section> -->
<section>
<h2>Who Might Find This Talk Interesting?</h2>
<ul>
<li>Creators</li>
@ -171,7 +163,7 @@
<li>What is it doing and how does it get there?</li>
</ul>
<img src="media/bluenrg-ghidra-trace.png" class="fragment">
</section>
</section> -->
</section>
<section>
<section>
@ -199,14 +191,14 @@
</ul>
-->
</section>
<section>
<!-- <section>
<h2>Transparent Emulator</h2>
<ul>
<li>WSL2/Docker</li>
<li>qemu on Linux</li>
<li>Rosetta on Mac</li>
</ul>
</section>
</section> -->
<section data-transition="slide-in fade-out">
<h2>What is an Emulator?</h2>
<img class="fragment" src="media/bbs-example.png">
@ -278,20 +270,20 @@
</section>
<section>
<h2>Defining a Computer in Renode</h2>
<pre><code data-trim data-line-numbers="|1-5|7-8|10-13">
<pre><code data-trim data-line-numbers="|1-5|7-10|12-13">
flash: Memory.MappedMemory @ sysbus 0x00000000
size: 0x00008000
sram: Memory.MappedMemory @ sysbus 0x20000000
size: 0x00001000
nvic: IRQControllers.NVIC @ sysbus 0xE000E000
IRQ -> cpu@0
cpu: CPU.CortexM @ sysbus
cpuType: "cortex-m0+"
PerformanceInMips: 24
nvic: nvic
nvic: IRQControllers.NVIC @ sysbus 0xE000E000
IRQ -> cpu@0
</code></pre>
bluenrg-1.repl
</section>
@ -432,7 +424,7 @@
Blocks are frequently reused across designs, and can save you from having to reimplement
everything from scratch!
</section>
<section>
<!-- <section>
<h2>What if we need to write it ourselves?</h2>
</section>
<section>
@ -569,7 +561,7 @@
</ul>
<li class="fragment">Most writes can be ignored</li>
</ul>
</section>
</section> -->
<section>
<h2>Peripheral Rapid Development</h2>
<img src="media/hardware-20191117-cropped.jpg">
@ -605,74 +597,6 @@
<h2>Emulation brings more eyes to the project</h2>
</section>
</section>
<!--
<section>
<section>
<h2>Example of Weird Hardware</h2>
<ul>
<li>NRF52840</li>
<li>LM74 Temperature Sensor</li>
</ul>
</section>
<section>
<h2>Example of Weird Hardware</h2>
<ul>
<li>NRF52833</li>
<li>LM74 Temperature Sensor</li>
</ul>
</section>
<section>
<h2>Example of Weird Hardware</h2>
<ul>
<li>BlueNRG1</li>
<li>LM74 Temperature Sensor</li>
</ul>
</section>
<section>
<h2>Example of Weird Hardware</h2>
<ul>
<li>RISC-V</li>
<li>FPGA-based framebuffer</li>
<li>Initial graphical demo in 1 hour</li>
</ul>
</section>
</section>
<section>
<section>
<h2>What makes hardware "Weird"?</h2>
<ul>
<li>Unusual CPU architecture</li>
<li>Different model of chip than commonly found</li>
<li>Additional hardware</li>
<li>More CPUs per board</li>
</ul>
</section>
<section>
<h2>Unusual CPU architecture</h2>
Sorry, can't help
</section>
<section>
<h2>Different model CPU</h2>
<ul>
<li>Maybe it's just a variant</li>
<li>Perhaps memory regions were shuffled</li>
<li>Does it use the same hardware block as someone else?</li>
</ul>
</section>
<section>
<h2>New hardware version</h2>
<ul>
<li>Do you use the new, specialized features?</li>
<li>Lots of UARTs support Infrared. Do you need that?</li>
</ul>
</section>
<section>
<h2>Completely new hardware</h2>
<ul>
<li>Time to break out C#</li>
</ul>
</section>
</section> -->
<section>
<section>
<h2>Robot Framework: Running Tests in CI</h2>
@ -689,11 +613,11 @@
${URI} @https://dl.antmicro.com/projects/renode
${LIS2DS12}= SEPARATOR=
... """ ${\n}
... using "platforms/cpus/nrf52840.repl" ${\n}
... ${\n}
... lis2ds12: Sensors.LIS2DS12 @ twi1 0x1c ${\n}
... ${SPACE*4}IRQ -> gpio0@28 ${\n}
... """ ${\n}
... using "platforms/cpus/nrf52840.repl" ${\n}
... ${\n}
... lis2ds12: Sensors.LIS2DS12 @ twi1 0x1c ${\n}
... ${SPACE*4}IRQ -> gpio0@28 ${\n}
... """
*** Keywords ***
@ -702,7 +626,7 @@
Execute Command machine
... LoadPlatformDescriptionFromString ${LIS2DS12}
Execute Command sysbus LoadELF
... ${URI}/nrf52840--zephyr_lis2dh.elf-s_747800-163b7e7cc986d4b1115f06b5f3df44ed0defc1fa
... ${URI}/nrf52840--zephyr_lis2dh.elf
*** Test Cases ***
Should Read Acceleration
@ -720,6 +644,10 @@
</code></pre>
<p>LIS2DS12.robot</p>
</section>
<section>
<h2>Github Actions</h2>
<img src="media/renode-ci-test.png">
</section>
</section>
<section>
<section>
@ -727,7 +655,7 @@
</section>
<section>
<h2>SVD: Standard Chip Documentation</h2>
<pre class="code-animation"><code class="xml" data-trim data-line-numbers="|3-9|25-87|27-31|31|39-57|41|43|46-47|48-56"><script type="text/template">
<pre class="code-animation"><code class="xml" data-trim data-line-numbers="|3-9|25-87|27-31|31|39-57|41|43|48-56|46"><script type="text/template">
<?xml version='1.0' encoding='utf-8'?>
<device xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="1.1" xsi:noNamespaceSchemaLocation="CMSIS-SVD_Schema_1_1_draft.xsd">
<vendor>STMicroelectronics</vendor>
@ -863,7 +791,18 @@
</section>
<section>
<h2>Loading Peripherals at Runtime</h2>
<pre><code class="cs" data-trim data-line-numbers="|3-8|9-16">
<pre><code class="cs" data-trim data-line-numbers="|1-10|12-28|14-19|20-27">
private enum Registers
{
STATUS = 0x0,
DATA = 0x4,
URANDOM = 0x8,
URANDOM_VALID = 0xc,
EV_STATUS = 0x10,
EV_PENDING = 0x14,
EV_ENABLE = 0x18,
}
private void DefineRegisters()
{
Registers.STATUS.Define(this) // RDY is set on reset
@ -910,7 +849,8 @@
Give it a try!
</section>
<section>
<h2>Thank you for your time</h2>
<h2>Thank you for joining</h2>
<h3>Questions?</h3>
</section>
</div>
</div>