Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
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
Prochain SlideShare
Chargement dans…5
×

Programming The Arduino Due in Rust

5 930 vues

Publié le

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

Publié dans : Technologie
  • Soyez le premier à commenter

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

×