Upload
sarah-sharp
View
322
Download
3
Embed Size (px)
Citation preview
Sarah SharpOtter Tech
1
Otter CC-BY Amit Patel
Small, smaller, smallest:A tour of the embedded world
Sarah SharpOtter Tech
2
Otter CC-BY Amit Patel
Agenda
● Systems programmer● Embedded Linux● Real-time Linux● Arduino● Real-time operating systems● Embedded without C
Sarah SharpOtter Tech
3
Otter CC-BY Amit Patel
How I became asystems programmer
Sarah SharpOtter Tech
4
Otter CC-BY Amit Patel
System software “mindset”
● Reproducibility is hard● Need to unlearn “bad habits”
Sarah SharpOtter Tech
5
Otter CC-BY Amit Patel
Linux KernelDebugging Challenges
● Debugger?● Function tracing?● Logging?● Printks?● “Gut instinct”?
CC-BY-NC-ND neuro https://www.flickr.com/photos/neuro/1052723/
Sarah SharpOtter Tech
6
Otter CC-BY Amit Patel
Linux kerneldevelopment is fun!
Sarah SharpOtter Tech
7
Otter CC-BY Amit Patel
Linux on a Rocket
CC-BY-NC-SA Sarah Sharp https://www.flickr.com/photos/saharabeara/14708892832/CC-BY-NC Pat Joyce https://www.flickr.com/photos/phatcontroller/7467606368/
Sarah SharpOtter Tech
8
Otter CC-BY Amit Patel
Real-time Linux
● Deterministic● Critical software isn't interrupted● RT Linux kernel is pre-emptible
Sarah SharpOtter Tech
9
Otter CC-BY Amit Patel
Linux is… bloated!
Sarah SharpOtter Tech
10
Otter CC-BY Amit Patel
Linux is… bloated!
Linux Weekly News: https://lwn.net/Articles/608945/
Sarah SharpOtter Tech
11
Otter CC-BY Amit Patel
Cheapest Linux Computer - $9
Sarah SharpOtter Tech
12
Otter CC-BY Amit Patel
Linux is too expensive!
CC-BY Bit Boy https://en.wikipedia.org/wiki/Electronic_shelf_label#/media/File:Today%27s_price_for_tea_is..._(96552109).jpg
Sarah SharpOtter Tech
13
Otter CC-BY Amit Patel
Arduino is still too expensive!
● $5 for LilyPad Twinkle
Sarah SharpOtter Tech
14
Otter CC-BY Amit Patel
Arduino
● Tutorials & forums● Build & debug IDE● Hardware abstraction
Sarah SharpOtter Tech
15
Otter CC-BY Amit Patel
Arduino is Embedded
● What is an embedded OS?– board-specific bring up
– hardware abstraction
– C or C++ → byte code
– flash board
Sarah SharpOtter Tech
16
Otter CC-BY Amit Patel
Arduino is Embedded
● What is an embedded OS?– board-specific bring up
– hardware abstraction
– C or C++ → byte code
– flash board
Contiki
Sarah SharpOtter Tech
17
Otter CC-BY Amit Patel
New Alternatives
● microPython● biosbits.org● Rust bindings to seL4● Zinc.rs● Rust-RTOS
Sarah SharpOtter Tech
18
Otter CC-BY Amit Patel
SmallestEmbedded Systems
● Do you need an OS?● Bare metal code
CC-BY-NC-SA G A R N E T https://www.flickr.com/photos/youraccount/4864286217/in/photostream/
Sarah SharpOtter Tech
19
Otter CC-BY Amit Patel
Embedded SystemsDebugging Challenges
● good: JTAG● bad: board may not boot :(● serial port output● bus protocol analyzers● oscilloscopes● blinking LEDs● pain of prototype → product
CC-BY-SA Keenan Pepper https://www.flickr.com/photos/keenanpepper/486011046
Sarah SharpOtter Tech
20
Otter CC-BY Amit Patel
Sarah SharpOtter Tech
21
Otter CC-BY Amit Patel
IoT = embedded + connectivity + data
Sarah SharpOtter Tech
22
Otter CC-BY Amit Patel
Welcome to the embedded IoT world!
http://wiki.osdev.org