Skip to content

Stage 2: Embedded Cleanups #106

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 15 commits into from
Oct 10, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions static/images/user-logos/49nord.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/images/user-logos/ael_logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/images/user-logos/ferrous-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/images/user-logos/sensirion.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
226 changes: 5 additions & 221 deletions templates/what/embedded.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -2,230 +2,14 @@

<header>
<div class="container">
<h1>Embedded devices</h1>
<h1>Embedded Devices</h1>
</div>
</header>

<!-- TODO looping video header that autoplays and that includes clips of different embedded projects -->
<!-- like the one in https://www.patreon.com/ -->
<!-- cliking the header leads to a community maintained gallery of projects -->
<section id="embedded-project-gallery" class="background-purple">
<div class="container">
<header>
<h2>Project Gallery</h2>
<div class="highlight highlight-yellow"></div>
</header>
<div class="row">
<div class="six columns">
<p>A mote of dust suspended in a sunbeam colonies. The carbon in our apple pies cosmic fugue a very small stage in a vast cosmic arena. Rich in heavy atoms, circumnavigated Sea of Tranquility worldlets Apollonius of Perga a billion trillion a very small stage in a vast cosmic arena.</p>
<a href="#" class="button button-secondary">See More Projects</a>
</div>
<div class="six columns">
<iframe
src="https://www.youtube.com/embed/L4fB0rVJI8g?rel=0"
frameborder="0"
allow="autoplay; encrypted-media"
allowfullscreen></iframe>
</div>
</div>
</section>

<section id="embedded-why-rust" class="background-green">
<div class="container">
<header>
<h2>Why Rust for embedded development?</h2>
<div class="highlight highlight-purple"></div>
</header>
<div class="row">
<div class="four columns" id="powerful-static-analysis">
<div class="domain-icon">
<img src="/static/images/microscope.svg" alt="A microscope"/>
<h3>Powerful static analysis</h3>
</div>
<p>
Rust type system lets you enforce pin and peripheral configuration at compile time. Its ownership system guarantees that resources won't be used by unintended parts of the application.
<a href="https://github.com/rust-lang-nursery/embedded-wg/issues/118">Learn more</a>
</p>
</div>
<div class="four columns" id="flexible-memory-management">
<div class="domain-icon">
<img src="/static/images/ram-memory.svg" alt="A RAM stick"/>
<h3>Flexible memory management</h3>
</div>
<p>
Dynamic memory (heap) allocation is optional. Use a global allocator and dynamic data structures from the Rust standard library. Or leave out heap allocation altogether and statically allocate everything.
<a href="https://github.com/rust-lang-nursery/embedded-wg/issues/125">Learn more</a>
</p>
</div>
<div class="four columns" id="safe-concurrency">
<div class="domain-icon">
<img src="/static/images/gears.svg" alt="Gears"/>
<h3>Safe concurrency</h3>
</div>
<p>
Rust memory safety holds regardless of the concurrency framework. Be it threads with explicit shared memory or tasks with message passing.
<a href="https://github.com/rust-lang-nursery/embedded-wg/issues/124">Learn more</a>
</p>
</div>
</div>
<div class="row">
<div class="four columns" id="Interoperability">
<div class="domain-icon">
<img src="/static/images/handshake.svg" alt="Handshake" />
<h3>Interoperability</h3>
</div>
<p>
Integrate Rust into your existing C codebase or leverage an existing SDK to write a Rust application.
<a href="https://github.com/rust-lang-nursery/embedded-wg/issues/48">Learn more</a>
</p>
</div>
<div class="four columns" id="portability">
<div class="domain-icon">
<img src="/static/images/luggage.svg" alt="Luggage trolley" />
<h3>Portability</h3>
</div>
<p>
Write a library / driver once and use it with a variety of systems ranging from very small microcontrollers to powerful SBCs.
<a href="https://github.com/rust-lang-nursery/embedded-wg/issues/119">Learn more</a>
</p>
</div>
<div class="four columns">
<div class="domain-icon">
<img src="/static/images/question.svg" alt="?" />
<h3>$RESERVED</h3>
</div>
<p>
We'll think of something to put here...
</p>
</div>
</div>
</div>
</section>

<section id="embedded-get-started" class="background-red">
<div class="container">
<header>
<h2>Get started!</h2>
<div class="highlight highlight-yellow"></div>
</header>
<div class="row">
<div class="four columns" id="discovery-book">
<div class="domain-icon">
<img src="/static/images/chip1.svg" alt="DIP-6 package"/>
<a href="https://japaric.github.io/discovery">
<h3>The Discovery book</h3>
</a>
</div>
<p>
Learn embedded development from scratch using Rust!
</p>
</div>
<div class="four columns" id="embedded-rust-book">
<div class="domain-icon">
<img src="/static/images/chip2.svg" alt="TFQP-16 package"/>
<a href="https://book.rust-embedded.org/">
<h3>The embedded Rust book</h3>
</a>
</div>
<p>
Already familiar with Embedded development? Make the switch to Rust
</p>
</div>
<div class="four columns" id="embedonomicon">
<div class="domain-icon">
<img src="/static/images/chip3.svg" alt="BGA package" />
<a href="https://embedonomicon.rust-embedded.org/">
<h3>The embedonomicon</h3>
</a>
</div>
<p>
Look under the hood of foundational embedded libraries.
</p>
</div>
</div>
</div>
</section>

<section id="embedded-testimonials">
<div class="container">
<header>
<h2>Production Use</h2>
<div class="highlight highlight-green"></div>
</header>
<!-- Testimonials section -->
<!-- Here we want to show *who* is using Rust and *what* they are building -->
<div class="testimonials">
<div class="testimonial row">
<div class="four columns">
<a href="https://49nord.de/">
<img alt="49nord logo" src="https://49nord.de/img/49nord-logo-blue-round.svg"/>
</a>
</div>
<div class="eight columns" id="brinkmann-testimonial">
<blockquote>
Rust makes our customers happy, as well as our engineers.
</blockquote>
<p class="attribution">- Marc Brinkmann</p>
</div>
</div>
<div class="testimonial row">
<div class="eight columns"id="arbuzov-testimonial">
<blockquote>
We think it's really cool that we can use a modern nice language in the embedded space where usually there's no alternative to C/C++
</blockquote>
<p class="attribution">- Aleksei Arbuzov</p>
</div>

<div class="four columns">
<a href="http://www.termt.eu/">
<img alt="49nord logo" src="https://i0.wp.com/embeddedsecuritynews.com/wp-content/uploads/2017/02/terminal-technologies-logo.png"/>
</a>
</div>
</div>
</div>
</div>
</section>

<!-- Friends section -->
<!-- Reference: https://www.rust-lang.org/en-US/friends.html -->
<!-- Here we want to show *who* is using Rust and *what* they are building -->
<!-- TODO this is missing the mouse over text -->
<section id="embedded-friends">
<div class="container">
<header>
<h2>Friends</h2>
<div class="highlight highlight-red"></div>
</header>
<div class="row">
<div class="four columns">
<div class="domain-icon">
<a href="http://www.otis.com">
<img alt="Otis Elevator Company logo" src="https://upload.wikimedia.org/wikipedia/en/2/2e/Otis_Elevator_Company_Logo.jpg"/>
<!-- TODO need more details about how they are using Rust -->
</a>
</div>
</div>

<div class="four columns">
<div class="domain-icon">
<a href="https://49nord.de/img/49nord-logo-blue-round.svg">
<img alt="49nord logo" src="https://49nord.de/img/49nord-logo-blue-round.svg"/>
<!-- "49nord develops safe and secure Industrial IoT hardware and applications using Rust." -->
</a>
</div>
</div>

<div class="four columns">
<div class="domain-icon">
<a href="http://www.termt.eu/">
<img alt="Otis Elevator Company logo" src="https://i0.wp.com/embeddedsecuritynews.com/wp-content/uploads/2017/02/terminal-technologies-logo.png"/>
</a>
<!-- TODO need more details about how they are using Rust -->
</div>
</div>
</div>
</div>
</section>
{{> what/embedded/pitch }}
{{> what/embedded/showcase }}
{{> what/embedded/get-started }}
{{> what/embedded/testimonials }}

{{/inline}}
{{~> (parent)~}}
51 changes: 51 additions & 0 deletions templates/what/embedded/get-started.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<section id="embedded-get-started" class="background-red">
<div class="container">
<header>
<h2>Get started!</h2>
<div class="highlight highlight-yellow"></div>
</header>
<div class="row">
<div class="four columns" id="discovery-book">
<div class="domain-icon">
<img src="/static/images/chip1.svg" alt="DIP-6 package"/>
<a href="https://rust-embedded.github.io/discovery/">
<h3>The Discovery Book</h3>
</a>
</div>
<p>
Learn embedded development from the ground up&mdash;using Rust!
</p>
</div>
<div class="four columns" id="embedded-rust-book">
<div class="domain-icon">
<img src="/static/images/chip2.svg" alt="TFQP-16 package"/>
<a href="https://rust-embedded.github.io/book/">
<h3>The Embedded Rust Book</h3>
</a>
</div>
<p>
Already familiar with Embedded development?
Jump in with Rust and start reaping the benefits.
</p>
</div>
<div class="four columns" id="embedonomicon">
<div class="domain-icon">
<img src="/static/images/chip3.svg" alt="BGA package" />
<a href="https://rust-embedded.github.io/embedonomicon/">
<h3>The Embedonomicon</h3>
</a>
</div>
<p>
Look under the hood of foundational embedded libraries.
</p>
</div>
</div>
<hr>
<div style="text-align: center;">
<p>
<a href="https://rust-embedded.github.io/bookshelf/" class="button button-secondary">
More Documentation
</a>
</div>
</div>
</section>
77 changes: 77 additions & 0 deletions templates/what/embedded/pitch.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
<section id="embedded-why-rust" class="background-green">
<div class="container">
<header>
<h2>Why Rust for Embedded Development?</h2>
<div class="highlight highlight-purple"></div>
</header>
<div class="row">
<div class="four columns" id="powerful-static-analysis">
<div class="domain-icon">
<img src="/static/images/microscope.svg" alt="A microscope"/>
<h3>Powerful static analysis</h3>
</div>
<p>
Enforce pin and peripheral configuration at compile time. Guarantee that resources won't be used by
unintended parts of your application.
<a href="https://github.com/rust-embedded/book/issues/5">Learn more</a>
</p>
</div>
<div class="four columns" id="flexible-memory-management">
<div class="domain-icon">
<img src="/static/images/ram-memory.svg" alt="A RAM stick"/>
<h3>Flexible Memory Management</h3>
</div>
<p>
Dynamic memory allocation is optional. Use a global allocator and dynamic data structures.
Or leave out the heap altogether and statically allocate everything.
<a href="https://github.com/rust-embedded/book/issues/8">Learn more</a>
</p>
</div>
<div class="four columns" id="safe-concurrency">
<div class="domain-icon">
<img src="/static/images/gears.svg" alt="Gears"/>
<h3>Fearless concurrency</h3>
</div>
<p>
Rust makes it impossible to accidentally share state between threads.
Use any concurrency approach you like, and you'll still get Rust's strong guarantees.
<a href="https://github.com/rust-embedded/book/issues/7">Learn more</a>
</p>
</div>
</div>
<div class="row">
<div class="four columns" id="Interoperability">
<div class="domain-icon">
<img src="/static/images/handshake.svg" alt="Handshake" />
<h3>Interoperability</h3>
</div>
<p>
Integrate Rust into your existing C codebase or leverage an existing SDK to write a Rust
application.
<a href="https://github.com/rust-embedded/book/issues/1">Learn more</a>
</p>
</div>
<div class="four columns" id="portability">
<div class="domain-icon">
<img src="/static/images/luggage.svg" alt="Luggage trolley" />
<h3>Portability</h3>
</div>
<p>
Write a library or driver once, and use it with a variety of systems, ranging
from very small microcontrollers to powerful SBCs.
<a href="https://github.com/rust-embedded/book/issues/6">Learn more</a>
</p>
</div>
<div class="four columns">
<div class="domain-icon">
<img src="/static/images/cli-rustc-approved.svg" alt="Shield Logo" />
<h3>Community Driven</h3>
</div>
<p>
As part of the Rust open source project, support for embedded systems is driven by a best-in-class open source community, with support from commercial partners.
<a href="https://github.com/rust-embedded/wg">Learn more</a>
</p>
</div>
</div>
</div>
</section>
Loading