Basic of Embedded Linux Programming
  • ondemand_video
       Video Length : 5h20m8s
  • format_list_bulleted
       Tasks Number : 28
  • group
       Students Enrolled : 42
  • equalizer
       Medium 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...

  • Curriculum
  • 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
Embedded
Basic of Embedded Linux Programming


Note: This is a module belongs to the classes, billing features separate for this module will be allowed if the content matches. The classes using this module are listed below.

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

1. Introduction

  • The tasks to do in this course
  • Overview of Embedded Systems
  • Software tools in the course

2. Overview of ARM architecture

  • Introduction to ARM architecture
  • Select the architecture according to the application
  • The common hardware platform

3. Embedded Linux operating system

  • Introduction to Embedded Linux OS
  • Compile Kernel-Uboot-Ramdisk
  • Install image on embedded board
  • Install tools on Ubuntu

4. Application Embedded Programming

  • Compile cross-platform arm-linux-gcc
  • Compile application basic
  • The I/O and GPIO programming
  • RS232/USB communication programming
  • Socket UDP/TCP programming
  • Multi-threaded and multi-threaded programming

5. The QT Graphic Programming

  • Introduction to the QT
  • Install the QT on Ubuntu
  • Install the QT on embedded board
  • Design UI and layout
  • C++ programming in QT

6. Embedded Driver Programming

  • Introduction to Device Driver
  • How to load and use Device Driver
  • Install and Compile Kernel
  • Create a Simple Driver for GPIO
  • Create Driver for UART/USB
  • Create a custom driver
  • Driver auto-configuration using udev