more basics
Signed-off-by: Sean Cross <sean@xobs.io>
This commit is contained in:
parent
8968455dee
commit
7b8e6ccf41
2
dist/theme/fossasia2023.css
vendored
2
dist/theme/fossasia2023.css
vendored
@ -67,7 +67,7 @@ section.has-light-background h6 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.reveal .footer {
|
.reveal .footer {
|
||||||
background-image: url("../../img/fossasia-logo.png");
|
/* background-image: url("../../img/fossasia-logo.png"); */
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-size: 10%;
|
background-size: 10%;
|
||||||
background-position-x: 50px;
|
background-position-x: 50px;
|
||||||
|
BIN
img/betrusted-wycheproof-patch-fix.png
Normal file
BIN
img/betrusted-wycheproof-patch-fix.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 112 KiB |
BIN
img/betrusted-wycheproof-patch.png
Normal file
BIN
img/betrusted-wycheproof-patch.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 108 KiB |
Binary file not shown.
Binary file not shown.
BIN
img/renode-multi-system.png
Normal file
BIN
img/renode-multi-system.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 347 KiB |
BIN
img/svd-files.png
Normal file
BIN
img/svd-files.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 191 KiB |
BIN
img/vt100-MA-4352.png
Normal file
BIN
img/vt100-MA-4352.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 135 KiB |
122
index.html
122
index.html
@ -57,7 +57,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<h2>Whole-system Emulator</h2>
|
<h2>Generic Whole-system Emulator</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li>CPU cores</li>
|
<li>CPU cores</li>
|
||||||
<li>Peripherals</li>
|
<li>Peripherals</li>
|
||||||
@ -76,7 +76,7 @@
|
|||||||
<li>arm64</li>
|
<li>arm64</li>
|
||||||
<li>ppc</li>
|
<li>ppc</li>
|
||||||
<li>riscv</li>
|
<li>riscv</li>
|
||||||
<li>spark</li>
|
<li>sparc</li>
|
||||||
<li>xtensa</li>
|
<li>xtensa</li>
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
@ -105,20 +105,13 @@
|
|||||||
<img data-src="img/memory-write.png">
|
<img data-src="img/memory-write.png">
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<h2>10% of the Functionality Gets You 90% of the Way There</h2>
|
<h2>10% Functionality Solves 90% of Usecases</h2>
|
||||||
<ul>
|
<img data-src="img/vt100-MA-4352.png">
|
||||||
|
<!-- <ul>
|
||||||
<li>E.g. in a serial device, baudrate, timers, and parity/stop can be ignored</li>
|
<li>E.g. in a serial device, baudrate, timers, and parity/stop can be ignored</li>
|
||||||
<li>Just "Tx", "Rx", and interrupt setup</li>
|
<li>Just "Tx", "Rx", and interrupt setup</li>
|
||||||
<li>Most software works just fine if you return zeroes for invalid addresses</li>
|
<li>Most software works just fine if you return zeroes for invalid addresses</li>
|
||||||
</ul>
|
</ul> -->
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<h2>SVD files are your friend</h2>
|
|
||||||
<ul>
|
|
||||||
<li>Your chip probably comes with a SVD file</li>
|
|
||||||
<li>This gives a map of RAM and peripherals</li>
|
|
||||||
<li>Renode can parse this and use it for logging / defaults</li>
|
|
||||||
</ul>
|
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<h2>Existing Peripherals in Renode</h2>
|
<h2>Existing Peripherals in Renode</h2>
|
||||||
@ -143,6 +136,15 @@
|
|||||||
<li>Peripherals can be written and loaded at runtime</li>
|
<li>Peripherals can be written and loaded at runtime</li>
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
|
<section>
|
||||||
|
<h2>SVD Files Are Your Friend</h2>
|
||||||
|
<!-- <ul>
|
||||||
|
<li>Your chip probably comes with a SVD file</li>
|
||||||
|
<li>This gives a map of RAM and peripherals</li>
|
||||||
|
<li>Renode can parse this and use it for logging / defaults</li>
|
||||||
|
</ul> -->
|
||||||
|
<img data-src="img/svd-files.png">
|
||||||
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<h2>Networks in Renode</h2>
|
<h2>Networks in Renode</h2>
|
||||||
<ul>
|
<ul>
|
||||||
@ -205,31 +207,28 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<h2>Emulating it under Renode</h2>
|
<h2>Betrusted</h2>
|
||||||
|
<img data-src="img/renode-multi-system.png">
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<h2>Emulating it With Renode</h2>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Good enough to develop the OS!</li>
|
<li>Good enough to develop the OS!</li>
|
||||||
<li>Good enough to catch bugs</li>
|
<li>Good enough to catch bugs</li>
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
|
<section data-transition="slide-in fade-out">
|
||||||
|
<h2>Getting Hardware to Users</h2>
|
||||||
|
<img src="img/betrusted-wycheproof-patch.png">
|
||||||
|
</section>
|
||||||
|
<section data-transition="fade-in">
|
||||||
|
<h2>Getting Hardware to Users</h2>
|
||||||
|
<img src="img/betrusted-wycheproof-patch-fix.png">
|
||||||
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<h2>ENGINE bug</h2>
|
<section>
|
||||||
<ol>
|
<h1>Demonstration!</h1>
|
||||||
<li>Added test vectors to the OS</li>
|
</section>
|
||||||
<li>Ran test vectors on physical device</li>
|
|
||||||
<li>Got test vectors passing in Renode</li>
|
|
||||||
<li>
|
|
||||||
<ul>
|
|
||||||
<li>Yay!</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li>Someone (without a device!) decided to add more vectors</li>
|
|
||||||
<li>Tested in Renode</li>
|
|
||||||
<li>Passed</li>
|
|
||||||
<li>Failed on hardware</li>
|
|
||||||
<li>Bug in detecting overflow condition for normalization in hardware</li>
|
|
||||||
<li>https://github.com/betrusted-io/gateware/commit/817e284a3d92037b8cb0686735578d2bb60853e9
|
|
||||||
</li>
|
|
||||||
</ol>
|
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<h2>Getting Started with Renode</h2>
|
<h2>Getting Started with Renode</h2>
|
||||||
@ -239,36 +238,53 @@
|
|||||||
</ol>
|
</ol>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<h2>Example project repl</h2>
|
<h2>Example project repl: </h2>
|
||||||
|
<pre><code>using "platforms/cpus/nrf52840.repl"
|
||||||
|
gpio0: // PinName in ArduinoIDE
|
||||||
|
24 -> led_red@0 // LED_RED
|
||||||
|
16 -> led_green@0 // LED_GREEN
|
||||||
|
6 -> led_blue@0 // LED_BLUE
|
||||||
|
camera: Sensors.ArduCAMMini2MPPlus @ {
|
||||||
|
spi2;
|
||||||
|
twi0 0x30
|
||||||
|
}
|
||||||
|
lsm9ds1_imu: Sensors.LSM9DS1_IMU @ twi0 0x6b
|
||||||
|
lsm9ds1_mag: Sensors.LSM9DS1_Magnetic @ twi0 0x1e
|
||||||
|
</code></pre>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<h2>Example project resc</h2>
|
<h2>Example project resc</h2>
|
||||||
|
<pre><code>using sysbus
|
||||||
|
mach create
|
||||||
|
machine LoadPlatformDescription @platforms/cpus/stm32f103.repl
|
||||||
|
machine LoadPlatformDescriptionFromString \
|
||||||
|
"button: Miscellaneous.Button @ gpioPortC 13 { IRQ -> gpioPortC@13 }"
|
||||||
|
showAnalyzer usart2
|
||||||
|
macro reset
|
||||||
|
"""
|
||||||
|
sysbus LoadELF @zephyr-stm32f103-button.elf
|
||||||
|
"""
|
||||||
|
runMacro $reset</code></pre>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<h2>Running it</h2>
|
<h2>Running it</h2>
|
||||||
|
<pre><code>mono64 Renode.exe project.resc</code></pre>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<h2>How to Extend Renode</h2>
|
<h2>How to Extend Renode</h2>
|
||||||
<ol>
|
<ol>
|
||||||
<li>Find a peripheral that does what you want</li>
|
<li>Find a peripheral that does what you want</li>
|
||||||
<li>
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>You might even find a compatible peripheral!</li>
|
<li>You might even find a compatible peripheral!</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
|
||||||
<li>Copy it to your project</li>
|
<li>Copy it to your project</li>
|
||||||
<li>Change the constructor</li>
|
<li>Change the constructor</li>
|
||||||
<li>Change the register set</li>
|
<li>Change the register set</li>
|
||||||
<li>Import the `.cs` file into Renode</li>
|
<li>Import the <code>.cs</code> file into Renode</li>
|
||||||
<li>Add it to your platform file</li>
|
<li>Add it to your platform file</li>
|
||||||
</ol>
|
</ol>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
|
||||||
<section>
|
|
||||||
<h1>Demonstration!</h1>
|
|
||||||
</section>
|
|
||||||
</section>
|
|
||||||
<section>
|
<section>
|
||||||
<section>
|
<section>
|
||||||
<h2>Running Badge Software in Renode</h2>
|
<h2>Running Badge Software in Renode</h2>
|
||||||
@ -372,6 +388,30 @@ sysbus: Write of value 0x4 to an unimplemented register SYSTEM:PERIP_RST_EN0 (0x
|
|||||||
<ul>
|
<ul>
|
||||||
<li>SPI Controller</li>
|
<li>SPI Controller</li>
|
||||||
<li>Interrupt Controller</li>
|
<li>Interrupt Controller</li>
|
||||||
|
<li>I2C Controller</li>
|
||||||
|
<li>Touch Controller</li>
|
||||||
|
<li>Display</li>
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<h2>Displays</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Implement <code>ISpiDevice</code></li>
|
||||||
|
<li>Subclass AutoRepaintingVideo</li>
|
||||||
|
<li>Implement <code>Repaint()</code></li>
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<h2>Touch Controller</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Possibly interact with the Display controller</li>
|
||||||
|
<li>Implement <code>II2CPeripheral</code></li>
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<h2>Audio is Hard</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Existing I2S peripherals just pattern-match audio</li>
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
|
Loading…
Reference in New Issue
Block a user