0
Rust on Arduino Due
Tim Kellogg
@kellogh
Source: https://github.com/tkellogg/dueboot
Getting started on OSX:
• http://arduino.cc/en/Guide/ArduinoDue
• brew install...
• As fast as C/C++
• No manual memory management, no GC
• Functional goodies
• Built-in unit testing
• Polymorphism (but n...
CPU Power?
Battery Life?
Quality?
Ariane 5
https://www.youtube.com/watch?v=kYUrqdUyE
pI
"We've demonstrated how as little
as a single bit flip can cause the
driver to lose control of the engine
speed in real ca...
• Buffer overflow
• Unsafe casting
• Race conditions between tasks
C binding generator:
https://github.com/crabtw/rust-bindgen
Remaining Issues
• Heap allocations
• Interrupts as Tasks
• Non-trivial language features
Book: Practical Internet of Things
@kellogh
Programming The Arduino Due in Rust
Programming The Arduino Due in Rust
Programming The Arduino Due in Rust
Upcoming SlideShare
Loading in...5
×

Programming The Arduino Due in Rust

2,497

Published on

Slides from my talk at GlueCon '14 about programming an Arduino Due in Rust, and about using Rust for embedded or IoT applications.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,497
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
4
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Transcript of "Programming The Arduino Due in Rust"

  1. 1. Rust on Arduino Due Tim Kellogg @kellogh
  2. 2. Source: https://github.com/tkellogg/dueboot Getting started on OSX: • http://arduino.cc/en/Guide/ArduinoDue • brew install rust • brew install llvm --all-targets • edit Rakefile of dueboot repository
  3. 3. • As fast as C/C++ • No manual memory management, no GC • Functional goodies • Built-in unit testing • Polymorphism (but no inheritance) • Compiles to ARM (Android, Raspberry Pi, Due)
  4. 4. CPU Power? Battery Life? Quality?
  5. 5. Ariane 5 https://www.youtube.com/watch?v=kYUrqdUyE pI
  6. 6. "We've demonstrated how as little as a single bit flip can cause the driver to lose control of the engine speed in real cars due to software malfunction that is not reliably detected by any fail-safe"
  7. 7. • Buffer overflow • Unsafe casting • Race conditions between tasks
  8. 8. C binding generator: https://github.com/crabtw/rust-bindgen
  9. 9. Remaining Issues • Heap allocations • Interrupts as Tasks • Non-trivial language features
  10. 10. Book: Practical Internet of Things @kellogh
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×