THE TRAINING PROGRAM FOR EMBEDDED SYSTEM ENGINEERS
The Training Program for Embedded System Engineers
$100.0

The classroom will release soon.

  • access_time
       Estimate Time : 0 days
  • ondemand_video
       Video Length : 37h32m22s
  • format_list_bulleted
       Tasks number : 197
  • group
       Students enrolled : 1080
  • equalizer
       High Level
Authors

Kevin Gautama is a systems design and programming engineer with 16 years of expertise in the fields of electrical and electronics and information technology.

He teaches at the Hanoi University of Industry in the period 2003-2011 and he has a certificate of vocational training by the Ministry of Industry and Commerce and the Hanoi University of Industry.

From extensive design experience through numerous engineering projects, the author founded the Enziin Academy.

The Enziin Academy is a startup in the field of educational, it's core goal is to training design engineers in the fields technology related.

The Enziin Academy is headquartered in Stockholm-Sweden with an orientation operating multi-lingual and global.

The author's skills in IT:

  • Implementing the application infrastructure on Amazon's cloud computing platform.
  • Linux server system administration (Sysadmin).
  • Design load balancing and content distribution system.
  • MySQL database administration.
  • C/C++/C# Programming
  • Ruby and Ruby on Rails Programming
  • Python and Django Programming
  • The WPF/C# on the .NET Framework Programming
  • The PHP/JAVA Programming
  • Machine Learning and Expert System.
  • Internet of Things.

The author's skills in the fields of electric and electronic:

  • The design of popular CPU / MCU systems.
  • Design FPGA / CPLD system (Xilinx - Altera).
  • Design and programming of DSP systems (Texas Instruments).
  • Embedded ARM system design.
  • The RTOS Programming
  • Design and programming electronic power systems.
  • PLC - inverter - sensor - electric control cabinet industrial.
  • Control systems distributed connection with Server.

Read more...

Embedded
The Training Program for Embedded System Engineers


An embedded system is a computer system with a dedicated function within a larger mechanical or electrical system, often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts.

Embedded systems control many devices in common use today. Ninety-eight percent of all microprocessors are manufactured as components of embedded systems.

Examples of properties of typical embedded computers when compared with general-purpose counterparts are low power consumption, small size, rugged operating ranges, and low per-unit cost. This comes at the price of limited processing resources, which make them significantly more difficult to program and to interact with.

However, by building intelligence mechanisms on top of the hardware, taking advantage of possible existing sensors and the existence of a network of embedded units, one can both optimally manage available resources at the unit and network levels as well as provide augmented functions, well beyond those available.

For example, intelligent techniques can be designed to manage power consumption of embedded systems. Modern embedded systems are often based on microcontrollers, but ordinary microprocessors are also common, especially in more-complex systems.

In either case, the processors used may be types ranging from general purpose to those specialized in certain class of computations, or even custom designed for the application at hand. A common standard class of dedicated processors is the digital signal processor (DSP).

Since the embedded system is dedicated to specific tasks, design engineers can optimize it to reduce the size and cost of the product and increase the reliability and performance. Some embedded systems are mass-produced, benefiting from economies of scale.

Embedded systems range from portable devices such as digital watches and MP3 players, to large stationary installations like traffic lights, factory controllers, and largely complex systems like hybrid vehicles, MRI, and avionics. Complexity varies from low, with a single microcontroller chip, to very high with multiple units, peripherals and networks mounted inside a large chassis or enclosure.

Applications

Embedded systems are commonly found in consumer, cooking, industrial, automotive, medical, commercial and military applications.

Telecommunications systems employ numerous embedded systems from telephone switches for the network to cell phones at the end user. Computer networking uses dedicated routers and network bridges to route data.

Consumer electronics include MP3 players, mobile phones, videogame consoles, digital cameras, GPS receivers, and printers. Household appliances, such as microwave ovens, washing machines and dishwashers, include embedded systems to provide flexibility, efficiency and features.

Advanced HVAC systems use networked thermostats to more accurately and efficiently control temperature that can change by time of day and season. Home automation uses wired- and wireless-networking that can be used to control lights, climate, security, audio/visual, surveillance, etc., all of which use embedded devices for sensing and controlling.

Transportation systems from flight to automobiles increasingly use embedded systems. New airplanes contain advanced avionics such as inertial guidance systems and GPS receivers that also have considerable safety requirements.

Various electric motors — brushless DC motors, induction motors and DC motors — use electric/electronic motor controllers. Automobiles, electric vehicles, and hybrid vehicles increasingly use embedded systems to maximize efficiency and reduce pollution.

Other automotive safety systems include anti-lock braking system (ABS), Electronic Stability Control (ESC/ESP), traction control (TCS) and automatic four-wheel drive. Medical equipment uses embedded systems for vital signs monitoring, electronic stethoscopes for amplifying sounds, and various medical imaging (PET, SPECT, CT, and MRI) for non-invasive internal inspections.

Embedded systems within medical equipment are often powered by industrial computers. Embedded systems are used in transportation, fire safety, safety and security, medical applications and life critical systems, as these systems can be isolated from hacking and thus, be more reliable.

For fire safety, the systems can be designed to have greater ability to handle higher temperatures and continue to operate. In dealing with security, the embedded systems can be self-sufficient and be able to deal with cut electrical and communication systems.

A new class of miniature wireless devices called motes are networked wireless sensors. Wireless sensor networking, WSN, makes use of miniaturization made possible by advanced IC design to couple full wireless subsystems to sophisticated sensors, enabling people and companies to measure a myriad of things in the physical world and act on this information through IT monitoring and control systems.

These motes are completely self-contained, and will typically run off a battery source for years before the batteries need to be changed or charged.

Embedded Wi-Fi modules provide a simple means of wirelessly enabling any device which communicates via a serial port.

Table of Content


  • Module 1: The C/C++ Programming Language
  • 1. Introduction the C programming language
    • videocam
      History

      11m26s
    • videocam
      Identifiers and Keywords

      11m26s
    • videocam
      Data types

      11m26s
    • videocam
      Typedef

      11m26s
    • videocam
      Const and Varialbe

      11m26s
    • videocam
      Array

      11m26s
  • 2. Input and Output Basic
    • videocam
      Standard Libraries

      11m26s
    • videocam
      The printf function

      11m26s
    • videocam
      The scanf function

      11m26s
    • videocam
      Using printer in C

      11m26s
  • 3. Expressions in C
    • videocam
      Arithmetic Operators in C

      11m26s
    • videocam
      Relational and Logical Operators

      11m26s
    • videocam
      Operation priorities in C

      11m26s
  • 4. C Programming Structure
    • videocam
      Comments

      11m26s
    • videocam
      Command Block

      11m26s
    • videocam
      Structure of program c

      11m26s
    • videocam
      Rule-Based Programming in C

      11m26s
    • videocam
      Control Statements in C

      11m26s
  • 5. Functional Programming
    • videocam
      Define a function

      11m26s
    • videocam
      Return value from function

      11m26s
    • videocam
      Recursive function

      11m26s
    • videocam
      Preprocessor

      11m26s
  • 6. Standard Libraries
    • videocam
      Type casting in C

      11m26s
    • videocam
      String functions in C

      11m26s
    • videocam
      The malloc and free memory

      11m26s
    • videocam
      Mathematical functions

      11m26s
  • 7. Pointers
    • videocam
      Pointers and addresses

      11m26s
    • videocam
      One-Dimensional Array with Pointer

      11m26s
    • videocam
      Multidimensional Array with Pointer

      11m26s
    • videocam
      Pointer to an Array

      11m26s
    • videocam
      Function Pointer in C

      11m26s
  • 8. Programming Structure in C
    • videocam
      Structure Definition

      11m26s
    • videocam
      Structure variable declaration

      11m26s
    • videocam
      Accessing members of a structure

      11m26s
    • videocam
      Array of structures

      11m26s
    • videocam
      Pointers to Structure

      11m26s
    • videocam
      Self Referential Data Structure

      11m26s
  • 9. Programming Files I/O in C
    • videocam
      Opening a file

      11m26s
    • videocam
      Reading and writing to a text file

      11m26s
    • videocam
      Reading and writing to a binary file

      11m26s
    • videocam
      Getting data using fseek()

      11m26s
    • videocam
      Deleting and Renaming a File

      11m26s
  • 10. Graphics Programming
    • videocam
      Graphics mode Initialization

      11m26s
    • videocam
      Graphics functions in C

      11m26s
    • videocam
      Draw shapes

      11m26s
  • 11. The C++ Programming Language
    • videocam
      Introduction to C++

      11m26s
    • videocam
      Difference Between C and C++

      11m26s
    • videocam
      Data Type of C++

      11m26s
    • videocam
      Basic Input/Output in C++

      11m26s
    • videocam
      Pointers and Arrays in C ++

      11m26s
    • videocam
      Structures - Unions and Enumerated Types

      11m26s
    • videocam
      Files I/O in C++

      11m26s
    • videocam
      Exception Handling in C++

      11m26s
    • videocam
      Namespaces

      11m26s
    • videocam
      Structured programming

      11m26s
  • 12. OOP in C++
    • videocam
      Introduction to Class

      11m26s
    • videocam
      Construction Cleanup Copy and Move

      11m26s
    • videocam
      Destructors

      11m26s
    • videocam
      Operator Overloading

      11m26s
    • videocam
      Derived Classes

      11m26s
    • videocam
      Class Hierarchies

      11m26s
    • videocam
      Friend Functions

      11m26s
  • 13. The Standard Library
    • videocam
      STL Containers

      11m26s
    • videocam
      STL Algorithms

      11m26s
    • videocam
      Memory and Resources

      11m26s
    • videocam
      Utilities in STL

      11m26s
    • videocam
      Strings in STL

      11m26s
    • videocam
      Regular Expressions

      11m26s
    • videocam
      I/O Streams

      11m26s
    • videocam
      Locales

      11m26s
    • videocam
      Numerics

      11m26s
    • videocam
      Concurrency

      11m26s
    • videocam
      Threads and Tasks

      11m26s
  • 14. Data Structures and Algorithms
    • videocam
      What is Stack?

      11m26s
    • videocam
      Program to implement a Stack

      11m26s
    • videocam
      Program to implement Queue

      11m26s
    • videocam
      Linked Lists

      11m26s
    • videocam
      Recursive

      11m26s
    • videocam
      Backtracking Algorithm

      11m26s
    • videocam
      Game Tree Algorithm

      11m26s
    • videocam
      Minimax Algorithm

      11m26s
    • videocam
      Binary Search Algorithm

      11m26s
    • videocam
      Insertion Sort

      11m26s
    • videocam
      Selection Sort

      11m26s
    • videocam
      Quick Sort

      11m26s
    • videocam
      Bubble Sort

      11m26s
    • videocam
      Divide and Conquer Algorithm

      11m26s
    • videocam
      Binary Trees

      11m26s
    • videocam
      B-Tree Algorithm

      11m26s
    • videocam
      Priority Queue

      11m26s
    • videocam
      Tables and Information Retrieval

      11m26s
    • videocam
      Hash Table

      11m26s
    • videocam
      Graph Data Structure And Algorithms

      11m26s
    • videocam
      Topological Sorting

      11m26s
    • videocam
      Shortest Path Algorithm

      11m26s
    • videocam
      Examples of Stack

      11m26s
    • videocam
      Examples of Queue

      11m26s
    • videocam
      Examples of Linked Lists

      11m26s
    • videocam
      Examples of Hash Table

      11m26s
  • Module 2: IT Knowledge for Electrical-Electronic Engineers
  • 1. Introduction
    • videocam
      Introduction to course

      11m26s
    • videocam
      Overview of IT for electronic engineers

      11m26s
  • 2. Installing Linux Server
    • videocam
      Select of solution and Linux server provider

      11m26s
    • videocam
      Installing Ubuntu and Centos server

      11m26s
    • videocam
      Administration commands on Linux

      11m26s
    • videocam
      Create user and permissions

      11m26s
    • videocam
      Connection via SSH/SFTP/SCP/Rsync

      11m26s
    • videocam
      The C/C++ programming on Linux

      11m26s
    • videocam
      Installing a basic PHP website

      11m26s
    • videocam
      Installing Ruby and Python interpreter on Linux

      11m26s
    • videocam
      The firewall on Linux

      11m26s
  • 3. Desktop Application Programming
    • videocam
      The basic protocol TCP/IP/UDP/HTTP/HTTPS

      11m26s
    • videocam
      Subversion and Git version management systems

      11m26s
    • videocam
      The C/C++ programming interface with TCP/UDP/HTTP

      11m26s
    • videocam
      The C# programming language

      11m26s
    • videocam
      The WPF programming in .Net Framework

      11m26s
    • videocam
      Build UI advanced with Microsoft Blend

      11m26s
    • videocam
      The JavaFX programming

      11m26s
  • 4. Mobile Application Programming
    • videocam
      React Native programming

      11m26s
    • videocam
      C# Xamarin programming

      11m26s
  • 5. Embedded System Programming
    • videocam
      The Socket TCP/IP/UDP/HTTP programming

      11m26s
    • videocam
      Internet of Things programming

      11m26s
  • 6. Reality Projects
    • videocam
      IoT programming in Raspberry

      11m26s
    • videocam
      IoT programming in ARM board

      11m26s
    • videocam
      Connect to Server Linux with module WiFi

      11m26s
  • Module 3: Real-Time Operating Systems Programming
  • 1. Introduction
    • videocam
      The tasks to do in this course

      11m26s
    • videocam
      Introduction to RTOS

      11m26s
    • videocam
      The common RTOS

      11m26s
    • videocam
      The concepts used in RTOS

      11m26s
  • 2. Tasking and Scheduling
    • videocam
      Introduction to Tasking

      11m26s
    • videocam
      The status of the task

      11m26s
    • videocam
      Create a new task

      11m26s
    • videocam
      The priority of the task

      11m26s
    • videocam
      Delete the task

      11m26s
    • videocam
      Scheduler for task

      11m26s
  • 3. Queue Management
    • videocam
      Introduction to Queue

      11m26s
    • videocam
      Using the queue

      11m26s
    • videocam
      Get the data into the queue

      11m26s
    • videocam
      Create a mailbox from the queue

      11m26s
  • 4. Timer Sofware Management
    • videocam
      Introduction to Timer Sofware

      11m26s
    • videocam
      Features and status of Timer Software

      11m26s
    • videocam
      The context of Timer Software

      11m26s
    • videocam
      Create a Timer Software

      11m26s
    • videocam
      Change the cycle of Timer Software

      11m26s
    • videocam
      Restart the Timer Software

      11m26s
  • 5. Interrupt Management
    • videocam
      Use RTOS in interrupts

      11m26s
    • videocam
      Delayed the interrupt

      11m26s
    • videocam
      Use Semaphore Binary

      11m26s
    • videocam
      Use queues in the interrupt

      11m26s
  • 6. Resource Management
    • videocam
      The need to manage resources

      11m26s
    • videocam
      Pause multitasking in critical situations

      11m26s
    • videocam
      Using Mutex

      11m26s
    • videocam
      Use Gatekeeper for tasks

      11m26s
  • 7. Events Management
    • videocam
      Introduction to Event

      11m26s
    • videocam
      Characteristics of an Event Group

      11m26s
    • videocam
      Using Event Groups

      11m26s
    • videocam
      Task Synchronization Using an Event Group

      11m26s
  • 8. Task Notifications
    • videocam
      Introduction to Task Notifications

      11m26s
    • videocam
      Benefits and Limitations

      11m26s
    • videocam
      Using Task Notifications

      11m26s
  • 9. Basic project: RTOS for MCUs
    • videocam
      How to use RTOS in Arduino

      11m26s
    • videocam
      Compile RTOS source code for MCU

      11m26s
    • videocam
      Programming of practical examples

      11m26s
    • videocam
      Programming RTOS for Atmega AVR

      11m26s
    • videocam
      Programming RTOS for Microchip PIC

      11m26s
  • 10. Advanced Project: RTOS for 32-bit ARM
    • videocam
      Introduction to STM32F4xx ARM Cortex-M4

      11m26s
    • videocam
      Install tools and software RTOS

      11m26s
    • videocam
      Programming examples for STM32F4xx

      11m26s
    • videocam
      Introduction to NXP ARM Cortex M3

      11m26s
    • videocam
      Programming examples for NXP ARM Cortex M3

      11m26s
  • Module 4: Basic of Embedded Linux Programming
  • 1. Introduction
    • videocam
      The tasks to do in this course

      11m26s
    • videocam
      Overview of Embedded Systems

      11m26s
    • videocam
      Software tools in the course

      11m26s
  • 2. Overview of ARM architecture
    • videocam
      Introduction to ARM architecture

      11m26s
    • videocam
      Select the architecture according to the application

      11m26s
    • videocam
      The common hardware platform

      11m26s
  • 3. Embedded Linux operating system
    • videocam
      Introduction to Embedded Linux OS

      11m26s
    • videocam
      Compile Kernel-Uboot-Ramdisk

      11m26s
    • videocam
      Install image on embedded board

      11m26s
    • videocam
      Install tools on Ubuntu

      11m26s
  • 4. Application Embedded Programming
    • videocam
      Compile cross-platform arm-linux-gcc

      11m26s
    • videocam
      Compile application basic

      11m26s
    • videocam
      The I/O and GPIO programming

      11m26s
    • videocam
      RS232/USB communication programming

      11m26s
    • videocam
      Socket UDP/TCP programming

      11m26s
    • videocam
      Multi-threaded and multi-threaded programming

      11m26s
  • 5. The QT Graphic Programming
    • videocam
      Introduction to the QT

      11m26s
    • videocam
      Install the QT on Ubuntu

      11m26s
    • videocam
      Install the QT on embedded board

      11m26s
    • videocam
      Design UI and layout

      11m26s
    • videocam
      C++ programming in QT

      11m26s
  • 6. Embedded Driver Programming
    • videocam
      Introduction to Device Driver

      11m26s
    • videocam
      How to load and use Device Driver

      11m26s
    • videocam
      Install and Compile Kernel

      11m26s
    • videocam
      Create a Simple Driver for GPIO

      11m26s
    • videocam
      Create Driver for UART/USB

      11m26s
    • videocam
      Create a custom driver

      11m26s
    • videocam
      Driver auto-configuration using udev

      11m26s
Discussions