Embedded Systems Advanced Course Syllabus
Embedded Systems Advanced Course Syllabus
Module: 1/9
Module name: Linux Systems
• Objectives:
o To get familiar with Linux Operating system – Commands, tools and editors
o Equip yourself to use Linux as a development platform for Embedded Systems
• Overview:
This kick-start module is intended to get new programmers up and running with Linux
embedded environment. Starting with basics of Linux and its features, this module covers the
essential commands. By getting to know powerful Linux commands for redirection and pipes, it
lays a strong foundation to automate routine tasks.
• Duration:
1 Week
• Platform:
Linux (Ubuntu)/WSL (Ubuntu)
• Delivery method:
Instructor-lead, Hands-on
• Module topics:
• Overview of Linux OS
• Getting started with Linux
• Command Line Interface
• Shell commands, filtering commands
• Redirection & pipes
• Directory and File system structure
• Visual editor(VIM)
Module: 2/9
Module name: Advanced C
• Objectives:
o Clearly understand concepts of C language
o To obtain good quality and style in programming
o Gear you up for programming in Embedded environment
o To induce confidence in you!
• Overview:
Lot of books tells about what is programming. Many also tell how to write a program, but very
few cover the critical aspect of translating logic into a program. Specifically, in this fast paced
industry, when you don't have time to think to program, this course comes really handy. It
builds on the basics of programming, smooth sailing through the advanced nitty-gritties of the
Advanced C language by translating logic to code. Every class is backed by discussion and topic
related assignments. Finally, a project letting you apply most of the concepts learned
throughout the module
• Duration:
2 months
• Platform:
Linux (Ubuntu) / Windows / Mac
• Delivery method:
Instructor lead, Specific assignments, and Project
• Module topics:
Module: 3/9
Module name: Data structures and Logic analysis
• Objectives:
o Review methods for problem solving and algorithm analysis
o Develop an understanding of Abstract Data Types (ADT) and their implementation
o Understand the importance of information hiding, data abstraction, and modular design
o Recognize programming needs - cost and benefits of each data structure
o Enable you to select the data structure for the job
• Overview:
A firm understanding of data structures provides a basis for writing more efficient code. The
four hallmarks of good programming are proper design, clear coding, good organization of data,
and correct algorithm selection. This course is intended to provide an understanding of data
specification and abstraction, how that leads to the specification of data structures, and how
data structures are implemented as late as possible, based on the specified structures.
• Pre-requisites:
Proficiency in C
• Duration:
1 month
• Platform:
Linux (Ubuntu) / Windows / Mac
• Delivery method:
Instructor lead, Assignments, and Project
• Module topics:
• Introduction to Data Structures & Algorithm Analysis
• Makefiles
• Coding guidelines and creation of project and libraries
• Abstract Data Types (ADT)
• Stacks, Queues and Linked Lists
• Trees, Recursion
• Sorting Algorithms
• Hashing
Emertxe Information Technologies – ECEP course syllabus
NOW FOR SIMPLIFIED SOLUTIONS
Module: 4/9
Module name: C++ Programming
• Objectives:
o Introduce you to Object Oriented Programming (OOP)
o Understand differences between C and C++ with respect to Embedded Programming
o Hands-on programming with OOP
• Overview:
The C++ programming language has emerged as a versatile language with multi-purpose
applications. Being one of the early OOP language this language provides some unique
advantage by separating data and methods using various data abstraction mechanisms. Designed
by keeping Embedded programmers in mind, this module takes a workshop approach towards
C++ programming.
• Duration:
10 days of class
• Platform:
Linux (Ubuntu) / Windows / Mac
• Delivery method:
Instructor lead with hands-on programs
• Module topics:
• Introduction to C++ and OOPS
• Creation & destruction of objects
• Data Members, Member Functions, and this Pointer
• Constructor & Destructor
• Inheritance, Function overriding and Virtual functions
• Polymorphism, Pure virtual functions, and Virtual Base Class
• Function and Class Templates
•
Module: 5/9
Module name: Basic Electronics
• Objectives:
o Understand and apply Ohm's Law and Kirchhoff's Laws.
o Understand the functioning and application of diodes, transistors, and operational
amplifiers.
o Become familiar with Fundamentals of semiconductors
• Overview:
This course introduces the fundamental concepts of electronics. Topics covered include the
basics of electric circuits, semiconductor devices, and applications of electronic circuits.
• Duration:
2 Weeks
• Delivery method:
Instructor led, Assignments.
• Module topics:
• Basics of passive elements (resistor, inductor, and capacitor), Kirchhoff’s voltage and
current laws.
• series and parallel circuits
• Fundamentals of semiconductors, PN junction diode, BJT, FET, Thyristors, Integrated
circuits
• Linear application – Transistors and Operational amplifiers
• oscillators (Op-Amp based).
Module: 6/9
Module name: Micro controllers
• Objectives:
o Enable you to read and understand datasheets and hardware manuals
o Setup, develop and download Embedded applications into a target hardware
o To provide a basic idea of hardware/electronics aspects of programming
o Enable you to program any micro controller
o To get you started with basic Embedded application development with ease
• Overview:
A complete module deals with writing an Embedded C program for Hardware with any micro-
controller on it. This module gives you first-hand experience of running your program on target
hardware, thereby giving you the “Embedded” feel. With PIC platform you will learn how to
write optimized Embedded programs.
• Duration:
1+ month
• Platform:
o Onsite classes: Rhydolabz PIC Board
o Online classes: PICSimLab – PIC Simulator Laboratory
• Delivery method:
Instructor led, Assignments and Mini Project
• Module topics:
Module: 7/9
Module name: Linux Internals & Networking
• Objectives:
o To gain strong knowledge of OS programming
o Proficiency on the Linux API’s and system calls
o To get the knowledge of high performance and secure coding by using OS capabilities
o Enable you to write Network protocols using Sockets
• Overview:
Currently most of the embedded systems are built over an operating system due to performance
requirements and the resource complexity. This adds responsibility to developers to understand
the make use of the operating system capabilities to build a secure, high performance and crash
free system. This course gives complete understanding of the Operating system concepts and
Linux internals (Interfaces, API’s and system calls). This module helps the audience to move to
the next level of programming by considering other factors in the system. This module is
industrial aligned and provides ample practical classes to provide good exposure to Linux
programming.
• Pre-requisites:
Proficiency in C programming, Fundamentals of Operating system
• Duration:
1+ month
• Platform:
Linux (Ubuntu)
• Delivery method:
Instructor lead, Assignments, and project
• Module topics:
• OS Basics – Components of Linux
• Systems calls, Process
• POSIX Threads – Multi threaded programming, P-thread API’s
• Synchronization – Race condition & mutex, Semaphores
• IPC – Signals, Pipes, FIFO, shared memory, System V-semaphores
• Sockets - TCP and UDP sockets, Client-server programming using sockets
•
Emertxe Information Technologies – ECEP course syllabus
NOW FOR SIMPLIFIED SOLUTIONS
Module: 8/9
Module name: Embedded Linux on ARM
• Objectives:
o Get you exposed with various trends in Embedded OS
o Making appropriate Open source choices for your Embedded device
o Get hands-on with Flash memory usage, EEPROMS using development boards
o Equip you with high end application Embedded development with ARM
• Overview:
A unique module combining various previous modules you have learnt by combing Linux
administration, Hardware knowledge, Linux as OS, C/Computer programming areas. This is a
complete module on Embedded OS, as of now no books are written on this with such practical
aspects. Every class is backed by discussion and topic related assignments, demo by instructor
and practice by you. Finally, a project letting you apply most of the concepts learned
throughout the module
• Duration:
Self-learning (Recorded Videos)
• Platform:
o Onsite classes: BeagleBone Black (ARM Cortex A8)
o Online classes: QEMU Emulator
• Delivery method:
Instructor lead, Assignments, and mini project
• Module topics:
• Embedded Development and Environment
• Toolchain: Configuration and Cross-compilation
• Target Overview and Boot loading
• Embedded Linux Kernel, Root File Systems
• U-boot setup, compilation & booting
• Kernel configuration, compilation & booting
Module: 9/9
Module name: Qt Programming
• Objectives:
o Get started with Qt and learn to develop GUI applications using Qt framework
o Apply OOP concepts by making use of features provided by Qt
o Develop elegant UI by learning design, development and debugging on your own
o Get a view about building vertical specific applications
• Overview:
Qt is a cross-platform GUI application development framework for various hardware and
software platforms (E.g. desktop, embedded and mobile). It is supported in all major platforms
like Linux, OS X, Windows, VxWorks, QNX, Android, iOS, Black-Berry, Sailfish OS and others. Qt
is not a programming language on its own. It is a framework written in C++. You write the code
once and make binaries for all platforms with a little or no change in the code. Our Qt module
will have extensive coverage of this powerful framework.
• Duration:
Self-learning (Recorded Videos)
• Platform:
Linux (Ubuntu)
• Delivery method:
Instructor lead with hands-on programs
• Module topics:
• Introduction to Qt and Development Environment
• QT Core, Utility and container classes
• Developing UI using Widgets and Designer
• Painting, Multimedia and Animations using QT
• Design Patterns, Multi-threading in QT
• Introduction to Qt Quick and Composing UI
• Integrating QML with C++
www.emertxe.com
V2: 28-09-2022