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 : 32h46m32s
  • format_list_bulleted
       Tasks number : 202
  • group
       Students enrolled : 571
  • 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...

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: 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 3: 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
You must login to comment.