Skip to content

Commit

Permalink
deploy: a4bb255
Browse files Browse the repository at this point in the history
  • Loading branch information
nworbnhoj committed Feb 1, 2024
1 parent a262c85 commit ef04b24
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 2 deletions.
13 changes: 13 additions & 0 deletions ch04-00-renode-emulation.html
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,19 @@ <h1><a class="header" href="#renode-emulation" id="renode-emulation">Renode Emul
<p><a href="https://renode.io/">Renode</a> is a multi-device emulator written in C#. It is designed to assist in testing and development of software, and is also useful in developing new hardware blocks.</p>
<p>The emulator is available for Windows, Mac, and Linux. It is designed to simulate whole systems of devices, meaning it can easily capture the interactions between devices on a network or bus. It allows you to pause the system and inspect memory, single-step, and watch various sections of the bus.</p>
<p>There is extensive end-user documentation available at <a href="https://renode.readthedocs.io/en/latest/">Read the Docs</a>, which is highly recommended. The remainder of this chapter will cover recommendations on how to use Renode with Xous.</p>
<h2><a class="header" href="#quickstart-using-the-renode-emulator" id="quickstart-using-the-renode-emulator">Quickstart using the Renode emulator</a></h2>
<p>Xous uses <a href="https://renode.io/">Renode</a> as the preferred emulator, because it is easy to extend the hardware peripherals without recompiling the entire emulator.</p>
<p><a href="https://renode.io/#downloads">Download Renode</a> and ensure it is in your path.
For now, you need to <a href="https://dl.antmicro.com/projects/renode/builds/">download the nightly build</a>,
until <code>DecodedOperation</code> is included in the release.</p>
<p>Then, build Xous:</p>
<pre><code class="language-sh">cargo xtask renode-image
</code></pre>
<p>This will compile everything in <code>release</code> mode for RISC-V, compile the tools required to package it all up, then create an image file.</p>
<p>Finally, run Renode and specify the <code>xous-release.resc</code> REnode SCript:</p>
<pre><code class="language-sh">renode emulation/xous-release.resc
</code></pre>
<p>Renode will start emulation automatically, and will run the same set of programs as in &quot;Hosted mode&quot;.</p>

</main>

Expand Down
13 changes: 13 additions & 0 deletions print.html
Original file line number Diff line number Diff line change
Expand Up @@ -769,6 +769,19 @@ <h1><a class="header" href="#renode-emulation" id="renode-emulation">Renode Emul
<p><a href="https://renode.io/">Renode</a> is a multi-device emulator written in C#. It is designed to assist in testing and development of software, and is also useful in developing new hardware blocks.</p>
<p>The emulator is available for Windows, Mac, and Linux. It is designed to simulate whole systems of devices, meaning it can easily capture the interactions between devices on a network or bus. It allows you to pause the system and inspect memory, single-step, and watch various sections of the bus.</p>
<p>There is extensive end-user documentation available at <a href="https://renode.readthedocs.io/en/latest/">Read the Docs</a>, which is highly recommended. The remainder of this chapter will cover recommendations on how to use Renode with Xous.</p>
<h2><a class="header" href="#quickstart-using-the-renode-emulator" id="quickstart-using-the-renode-emulator">Quickstart using the Renode emulator</a></h2>
<p>Xous uses <a href="https://renode.io/">Renode</a> as the preferred emulator, because it is easy to extend the hardware peripherals without recompiling the entire emulator.</p>
<p><a href="https://renode.io/#downloads">Download Renode</a> and ensure it is in your path.
For now, you need to <a href="https://dl.antmicro.com/projects/renode/builds/">download the nightly build</a>,
until <code>DecodedOperation</code> is included in the release.</p>
<p>Then, build Xous:</p>
<pre><code class="language-sh">cargo xtask renode-image
</code></pre>
<p>This will compile everything in <code>release</code> mode for RISC-V, compile the tools required to package it all up, then create an image file.</p>
<p>Finally, run Renode and specify the <code>xous-release.resc</code> REnode SCript:</p>
<pre><code class="language-sh">renode emulation/xous-release.resc
</code></pre>
<p>Renode will start emulation automatically, and will run the same set of programs as in &quot;Hosted mode&quot;.</p>
<h1><a class="header" href="#writing-renode-c-peripherals" id="writing-renode-c-peripherals">Writing Renode C# Peripherals</a></h1>
<p>Renode is written in C#, which means it has access to the entire base of C#. One feature of C# is the <code>CSharpCodeProvider</code> object which provides the <code>CompileAssemblyFromSource(CompilerParameters, string[])</code> function. This means that Renode has a runtime C# compiler built in.</p>
<p>You can <code>include</code> C# files in the Renode console or in your startup script to dynamically add new peripherals to your environment. Xous uses this extensively in Betrusted since the hardware peripherals are still under development and therefore change regularly. Updating a hardware module in Renode simply involves modifying the <code>.cs</code> file and restarting Renode. There is no additional compile step.</p>
Expand Down
2 changes: 1 addition & 1 deletion searchindex.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion searchindex.json

Large diffs are not rendered by default.

0 comments on commit ef04b24

Please sign in to comment.