Top Banner
Embedded systems 25 February 2015 Lecture [email protected]
24
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

Embedded systems

25 February 2015

Lecture

[email protected]

Page 2: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

What does it mean: programming for an embedded system?

Page 3: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

Definition of an embedded system:

Dedicated hardware and software,designed to perform a specific task.

Page 4: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

Dedicated hardware and software

•Playing media, audio and video•TV signal decoding•Recording media (PVR = personal video recorder)•Low power consumption (energy saving)•Internet browsing •Communication with other devices: remote control, game pad, smartphone...

Page 5: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

Dedicated hardware and software

•CPU•RAM and ROM•Ethernet, WiFi•HDD•Tuner•Decoder•Display (TV) •Audio and video output (HDMI)

Page 6: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

Dedicated hardware and software

Low level: •Memory mapping•Interrupts•Bootloader•Kernel and Kernel modules•File system•I/O•Drivers•Usually C languge

Page 7: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

Dedicated hardware and software

Middleware - System logic to implement the „Dedicated” features,

.e.g:•Web servers/clients•PVR

•Usually C++ language

Page 8: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

Dedicated hardware and software

When hardware changes - drivers change.To avoid middleware changes there is a HAL = Hardware Abstraction Layer between Middleware and Drivers.

HAL

Drivers

Hardware

Middleware

Page 9: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

Dedicated hardware and software

WebKit – open source engineJavaScript and HTML5 support

HAL

Drivers

Hardware

Middleware

Browser

Page 10: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

Dedicated hardware and software

SDK for application developement

Public API for JavaScript

Allows to launch user applications on embedded systems

ApplicationsJavaScript and HTML5

HAL

Drivers

Hardware

Middleware

Browser

Page 11: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

WEB example – html5 video tag

Page 12: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

WEB example – html5 video tag

Page 13: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

How does Browser (WebKit) plays video tag?

Page 14: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

How does Browser (WebKit) plays video tag?

You can also implement you custom interface in similar way

Page 15: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

How does Browser (WebKit) plays video tag?

Custom interface implementations allow the use of custom hardware through Middleware/HAL

HAL

Drivers

Hardware

Middleware

Browser (custom Webkit)

Page 16: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

Public API example : tuneUp function

Page 17: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

Public API example : tuneUp function

Middleware implements API functionsIn this example receives tuneUp request (channel change)

ApplicationsJavaScript and HTML5

HAL

Drivers

Hardware

Middleware

Browser

Page 18: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

Public API example : tuneUp function

Middleware implements and manages the flow of channel change:

Tuner Frequency to digital

DemultiplexerParses video from mpegts Decoder

Video processing(de-noise, scaler)

Renderer(display)

Page 19: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

Other Middleware examples

File I-frames indexer Decoder Buffer

...

Trickplay – fast forward video playing

Streaming video file to mobile device

File Buffer HTTP Server

Page 20: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

So, what does it mean: programming for an embedded system?

•In most cases it is programming for Middleware layer – sophisticated logics•Usually C++ programming in Linux•Threads, buffers, memory management, design patterns, network, shared libraries, open source components (e.g ffmpeg, Gstreamer)...•Low Level programming

Page 21: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

So, what does it mean: programming for an embedded system?

Non-recurring engineering:• Middleware/Low level devolepement is expensive but once it is done it can be duplicated with NO cost•Choise of more expensive hardware component can cause HUGE cost increase!•Whenever possible it is always better to place logic in middleware level

Page 22: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

Quiz

Do you know an example of binding between JavaScript and C++? Remote Procedure Call (RPC)

How is it done in Facebook?

ApplicationsJavaScript and HTML5

HAL

Drivers

Hardware

Middleware

Browser

Page 23: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.
Page 24: Embedded systems 25 February 2015 Lecture a.kurek@samsung.com.

Thank you!

[email protected]