Skip to content

Commit 916a89c

Browse files
authored
Merge pull request #106 from rust-lang/embedded-2
Stage 2: Embedded Cleanups
2 parents 4269366 + b9128a3 commit 916a89c

11 files changed

+242
-221
lines changed

static/images/user-logos/49nord.svg

Lines changed: 17 additions & 0 deletions
Loading

static/images/user-logos/ael_logo.png

45.5 KB
Loading
Loading
30 KB
Loading
36.2 KB
Loading
Loading

templates/what/embedded.hbs

Lines changed: 5 additions & 221 deletions
Original file line numberDiff line numberDiff line change
@@ -2,230 +2,14 @@
22

33
<header>
44
<div class="container">
5-
<h1>Embedded devices</h1>
5+
<h1>Embedded Devices</h1>
66
</div>
77
</header>
88

9-
<!-- TODO looping video header that autoplays and that includes clips of different embedded projects -->
10-
<!-- like the one in https://www.patreon.com/ -->
11-
<!-- cliking the header leads to a community maintained gallery of projects -->
12-
<section id="embedded-project-gallery" class="background-purple">
13-
<div class="container">
14-
<header>
15-
<h2>Project Gallery</h2>
16-
<div class="highlight highlight-yellow"></div>
17-
</header>
18-
<div class="row">
19-
<div class="six columns">
20-
<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>
21-
<a href="#" class="button button-secondary">See More Projects</a>
22-
</div>
23-
<div class="six columns">
24-
<iframe
25-
src="https://www.youtube.com/embed/L4fB0rVJI8g?rel=0"
26-
frameborder="0"
27-
allow="autoplay; encrypted-media"
28-
allowfullscreen></iframe>
29-
</div>
30-
</div>
31-
</section>
32-
33-
<section id="embedded-why-rust" class="background-green">
34-
<div class="container">
35-
<header>
36-
<h2>Why Rust for embedded development?</h2>
37-
<div class="highlight highlight-purple"></div>
38-
</header>
39-
<div class="row">
40-
<div class="four columns" id="powerful-static-analysis">
41-
<div class="domain-icon">
42-
<img src="/static/images/microscope.svg" alt="A microscope"/>
43-
<h3>Powerful static analysis</h3>
44-
</div>
45-
<p>
46-
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.
47-
<a href="https://github.com/rust-lang-nursery/embedded-wg/issues/118">Learn more</a>
48-
</p>
49-
</div>
50-
<div class="four columns" id="flexible-memory-management">
51-
<div class="domain-icon">
52-
<img src="/static/images/ram-memory.svg" alt="A RAM stick"/>
53-
<h3>Flexible memory management</h3>
54-
</div>
55-
<p>
56-
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.
57-
<a href="https://github.com/rust-lang-nursery/embedded-wg/issues/125">Learn more</a>
58-
</p>
59-
</div>
60-
<div class="four columns" id="safe-concurrency">
61-
<div class="domain-icon">
62-
<img src="/static/images/gears.svg" alt="Gears"/>
63-
<h3>Safe concurrency</h3>
64-
</div>
65-
<p>
66-
Rust memory safety holds regardless of the concurrency framework. Be it threads with explicit shared memory or tasks with message passing.
67-
<a href="https://github.com/rust-lang-nursery/embedded-wg/issues/124">Learn more</a>
68-
</p>
69-
</div>
70-
</div>
71-
<div class="row">
72-
<div class="four columns" id="Interoperability">
73-
<div class="domain-icon">
74-
<img src="/static/images/handshake.svg" alt="Handshake" />
75-
<h3>Interoperability</h3>
76-
</div>
77-
<p>
78-
Integrate Rust into your existing C codebase or leverage an existing SDK to write a Rust application.
79-
<a href="https://github.com/rust-lang-nursery/embedded-wg/issues/48">Learn more</a>
80-
</p>
81-
</div>
82-
<div class="four columns" id="portability">
83-
<div class="domain-icon">
84-
<img src="/static/images/luggage.svg" alt="Luggage trolley" />
85-
<h3>Portability</h3>
86-
</div>
87-
<p>
88-
Write a library / driver once and use it with a variety of systems ranging from very small microcontrollers to powerful SBCs.
89-
<a href="https://github.com/rust-lang-nursery/embedded-wg/issues/119">Learn more</a>
90-
</p>
91-
</div>
92-
<div class="four columns">
93-
<div class="domain-icon">
94-
<img src="/static/images/question.svg" alt="?" />
95-
<h3>$RESERVED</h3>
96-
</div>
97-
<p>
98-
We'll think of something to put here...
99-
</p>
100-
</div>
101-
</div>
102-
</div>
103-
</section>
104-
105-
<section id="embedded-get-started" class="background-red">
106-
<div class="container">
107-
<header>
108-
<h2>Get started!</h2>
109-
<div class="highlight highlight-yellow"></div>
110-
</header>
111-
<div class="row">
112-
<div class="four columns" id="discovery-book">
113-
<div class="domain-icon">
114-
<img src="/static/images/chip1.svg" alt="DIP-6 package"/>
115-
<a href="https://japaric.github.io/discovery">
116-
<h3>The Discovery book</h3>
117-
</a>
118-
</div>
119-
<p>
120-
Learn embedded development from scratch using Rust!
121-
</p>
122-
</div>
123-
<div class="four columns" id="embedded-rust-book">
124-
<div class="domain-icon">
125-
<img src="/static/images/chip2.svg" alt="TFQP-16 package"/>
126-
<a href="https://book.rust-embedded.org/">
127-
<h3>The embedded Rust book</h3>
128-
</a>
129-
</div>
130-
<p>
131-
Already familiar with Embedded development? Make the switch to Rust
132-
</p>
133-
</div>
134-
<div class="four columns" id="embedonomicon">
135-
<div class="domain-icon">
136-
<img src="/static/images/chip3.svg" alt="BGA package" />
137-
<a href="https://embedonomicon.rust-embedded.org/">
138-
<h3>The embedonomicon</h3>
139-
</a>
140-
</div>
141-
<p>
142-
Look under the hood of foundational embedded libraries.
143-
</p>
144-
</div>
145-
</div>
146-
</div>
147-
</section>
148-
149-
<section id="embedded-testimonials">
150-
<div class="container">
151-
<header>
152-
<h2>Production Use</h2>
153-
<div class="highlight highlight-green"></div>
154-
</header>
155-
<!-- Testimonials section -->
156-
<!-- Here we want to show *who* is using Rust and *what* they are building -->
157-
<div class="testimonials">
158-
<div class="testimonial row">
159-
<div class="four columns">
160-
<a href="https://49nord.de/">
161-
<img alt="49nord logo" src="https://49nord.de/img/49nord-logo-blue-round.svg"/>
162-
</a>
163-
</div>
164-
<div class="eight columns" id="brinkmann-testimonial">
165-
<blockquote>
166-
Rust makes our customers happy, as well as our engineers.
167-
</blockquote>
168-
<p class="attribution">- Marc Brinkmann</p>
169-
</div>
170-
</div>
171-
<div class="testimonial row">
172-
<div class="eight columns"id="arbuzov-testimonial">
173-
<blockquote>
174-
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++
175-
</blockquote>
176-
<p class="attribution">- Aleksei Arbuzov</p>
177-
</div>
178-
179-
<div class="four columns">
180-
<a href="http://www.termt.eu/">
181-
<img alt="49nord logo" src="https://i0.wp.com/embeddedsecuritynews.com/wp-content/uploads/2017/02/terminal-technologies-logo.png"/>
182-
</a>
183-
</div>
184-
</div>
185-
</div>
186-
</div>
187-
</section>
188-
189-
<!-- Friends section -->
190-
<!-- Reference: https://www.rust-lang.org/en-US/friends.html -->
191-
<!-- Here we want to show *who* is using Rust and *what* they are building -->
192-
<!-- TODO this is missing the mouse over text -->
193-
<section id="embedded-friends">
194-
<div class="container">
195-
<header>
196-
<h2>Friends</h2>
197-
<div class="highlight highlight-red"></div>
198-
</header>
199-
<div class="row">
200-
<div class="four columns">
201-
<div class="domain-icon">
202-
<a href="http://www.otis.com">
203-
<img alt="Otis Elevator Company logo" src="https://upload.wikimedia.org/wikipedia/en/2/2e/Otis_Elevator_Company_Logo.jpg"/>
204-
<!-- TODO need more details about how they are using Rust -->
205-
</a>
206-
</div>
207-
</div>
208-
209-
<div class="four columns">
210-
<div class="domain-icon">
211-
<a href="https://49nord.de/img/49nord-logo-blue-round.svg">
212-
<img alt="49nord logo" src="https://49nord.de/img/49nord-logo-blue-round.svg"/>
213-
<!-- "49nord develops safe and secure Industrial IoT hardware and applications using Rust." -->
214-
</a>
215-
</div>
216-
</div>
217-
218-
<div class="four columns">
219-
<div class="domain-icon">
220-
<a href="http://www.termt.eu/">
221-
<img alt="Otis Elevator Company logo" src="https://i0.wp.com/embeddedsecuritynews.com/wp-content/uploads/2017/02/terminal-technologies-logo.png"/>
222-
</a>
223-
<!-- TODO need more details about how they are using Rust -->
224-
</div>
225-
</div>
226-
</div>
227-
</div>
228-
</section>
9+
{{> what/embedded/pitch }}
10+
{{> what/embedded/showcase }}
11+
{{> what/embedded/get-started }}
12+
{{> what/embedded/testimonials }}
22913

23014
{{/inline}}
23115
{{~> (parent)~}}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<section id="embedded-get-started" class="background-red">
2+
<div class="container">
3+
<header>
4+
<h2>Get started!</h2>
5+
<div class="highlight highlight-yellow"></div>
6+
</header>
7+
<div class="row">
8+
<div class="four columns" id="discovery-book">
9+
<div class="domain-icon">
10+
<img src="/static/images/chip1.svg" alt="DIP-6 package"/>
11+
<a href="https://rust-embedded.github.io/discovery/">
12+
<h3>The Discovery Book</h3>
13+
</a>
14+
</div>
15+
<p>
16+
Learn embedded development from the ground up&mdash;using Rust!
17+
</p>
18+
</div>
19+
<div class="four columns" id="embedded-rust-book">
20+
<div class="domain-icon">
21+
<img src="/static/images/chip2.svg" alt="TFQP-16 package"/>
22+
<a href="https://rust-embedded.github.io/book/">
23+
<h3>The Embedded Rust Book</h3>
24+
</a>
25+
</div>
26+
<p>
27+
Already familiar with Embedded development?
28+
Jump in with Rust and start reaping the benefits.
29+
</p>
30+
</div>
31+
<div class="four columns" id="embedonomicon">
32+
<div class="domain-icon">
33+
<img src="/static/images/chip3.svg" alt="BGA package" />
34+
<a href="https://rust-embedded.github.io/embedonomicon/">
35+
<h3>The Embedonomicon</h3>
36+
</a>
37+
</div>
38+
<p>
39+
Look under the hood of foundational embedded libraries.
40+
</p>
41+
</div>
42+
</div>
43+
<hr>
44+
<div style="text-align: center;">
45+
<p>
46+
<a href="https://rust-embedded.github.io/bookshelf/" class="button button-secondary">
47+
More Documentation
48+
</a>
49+
</div>
50+
</div>
51+
</section>

templates/what/embedded/pitch.hbs

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
<section id="embedded-why-rust" class="background-green">
2+
<div class="container">
3+
<header>
4+
<h2>Why Rust for Embedded Development?</h2>
5+
<div class="highlight highlight-purple"></div>
6+
</header>
7+
<div class="row">
8+
<div class="four columns" id="powerful-static-analysis">
9+
<div class="domain-icon">
10+
<img src="/static/images/microscope.svg" alt="A microscope"/>
11+
<h3>Powerful static analysis</h3>
12+
</div>
13+
<p>
14+
Enforce pin and peripheral configuration at compile time. Guarantee that resources won't be used by
15+
unintended parts of your application.
16+
<a href="https://github.com/rust-embedded/book/issues/5">Learn more</a>
17+
</p>
18+
</div>
19+
<div class="four columns" id="flexible-memory-management">
20+
<div class="domain-icon">
21+
<img src="/static/images/ram-memory.svg" alt="A RAM stick"/>
22+
<h3>Flexible Memory Management</h3>
23+
</div>
24+
<p>
25+
Dynamic memory allocation is optional. Use a global allocator and dynamic data structures.
26+
Or leave out the heap altogether and statically allocate everything.
27+
<a href="https://github.com/rust-embedded/book/issues/8">Learn more</a>
28+
</p>
29+
</div>
30+
<div class="four columns" id="safe-concurrency">
31+
<div class="domain-icon">
32+
<img src="/static/images/gears.svg" alt="Gears"/>
33+
<h3>Fearless concurrency</h3>
34+
</div>
35+
<p>
36+
Rust makes it impossible to accidentally share state between threads.
37+
Use any concurrency approach you like, and you'll still get Rust's strong guarantees.
38+
<a href="https://github.com/rust-embedded/book/issues/7">Learn more</a>
39+
</p>
40+
</div>
41+
</div>
42+
<div class="row">
43+
<div class="four columns" id="Interoperability">
44+
<div class="domain-icon">
45+
<img src="/static/images/handshake.svg" alt="Handshake" />
46+
<h3>Interoperability</h3>
47+
</div>
48+
<p>
49+
Integrate Rust into your existing C codebase or leverage an existing SDK to write a Rust
50+
application.
51+
<a href="https://github.com/rust-embedded/book/issues/1">Learn more</a>
52+
</p>
53+
</div>
54+
<div class="four columns" id="portability">
55+
<div class="domain-icon">
56+
<img src="/static/images/luggage.svg" alt="Luggage trolley" />
57+
<h3>Portability</h3>
58+
</div>
59+
<p>
60+
Write a library or driver once, and use it with a variety of systems, ranging
61+
from very small microcontrollers to powerful SBCs.
62+
<a href="https://github.com/rust-embedded/book/issues/6">Learn more</a>
63+
</p>
64+
</div>
65+
<div class="four columns">
66+
<div class="domain-icon">
67+
<img src="/static/images/cli-rustc-approved.svg" alt="Shield Logo" />
68+
<h3>Community Driven</h3>
69+
</div>
70+
<p>
71+
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.
72+
<a href="https://github.com/rust-embedded/wg">Learn more</a>
73+
</p>
74+
</div>
75+
</div>
76+
</div>
77+
</section>

0 commit comments

Comments
 (0)