Download presentation
Published byArron Freeman Modified over 9 years ago
1
Embedded systems Lecture 25 February 2015
2
What does it mean: programming for an embedded system?
3
Definition of an embedded system:
Dedicated hardware and software, designed to perform a specific task.
4
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...
5
Dedicated hardware and software
CPU RAM and ROM Ethernet, WiFi HDD Tuner Decoder Display (TV) Audio and video output (HDMI)
6
Dedicated hardware and software
Low level: Memory mapping Interrupts Bootloader Kernel and Kernel modules File system I/O Drivers Usually C languge
7
Dedicated hardware and software
Middleware - System logic to implement the „Dedicated” features, .e.g: Web servers/clients PVR Usually C++ language
8
Dedicated hardware and software
When hardware changes - drivers change. To avoid middleware changes there is a HAL = Hardware Abstraction Layer between Middleware and Drivers. Middleware HAL Drivers Hardware
9
Dedicated hardware and software
Browser WebKit – open source engine JavaScript and HTML5 support Middleware HAL Drivers Hardware
10
Dedicated hardware and software
SDK for application developement Public API for JavaScript Allows to launch user applications on embedded systems Applications JavaScript and HTML5 Browser Middleware HAL Drivers Hardware
11
WEB example – html5 video tag
12
WEB example – html5 video tag
13
How does Browser (WebKit) plays video tag?
14
How does Browser (WebKit) plays video tag?
You can also implement you custom interface in similar way
15
How does Browser (WebKit) plays video tag?
Custom interface implementations allow the use of custom hardware through Middleware/HAL Browser (custom Webkit) Middleware HAL Drivers Hardware
16
Public API example : tuneUp function
17
Public API example : tuneUp function
Middleware implements API functions In this example receives tuneUp request (channel change) Applications JavaScript and HTML5 Browser Middleware HAL Drivers Hardware
18
Public API example : tuneUp function
Middleware implements and manages the flow of channel change: Tuner Frequency to digital Demultiplexer Parses video from mpegts Decoder Video processing (de-noise, scaler) Renderer (display)
19
Other Middleware examples
Trickplay – fast forward video playing File I-frames indexer Buffer Decoder Streaming video file to mobile device File Buffer HTTP Server ...
20
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
21
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
22
Do you know an example of binding between JavaScript and C++?
Quiz Do you know an example of binding between JavaScript and C++? Remote Procedure Call (RPC) How is it done in Facebook? Applications JavaScript and HTML5 Browser Middleware HAL Drivers Hardware
24
Thank you! a.kurek@samsung.com 4/17/2017
[ADD PRESENTATION TITLE: INSERT TAB > HEADER & FOOTER > NOTES AND HANDOUTS]
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.