Loading Events

« All Events

  • This event has passed.

Course: Linux Based Embedded Systems Design

October 22, 2016 @ 09:00 - 17:00

The IEEE Long Island Section and the IEEE Long Island Computer Society Present:

CENG-30 Linux Based Embedded Systems Design

For queries contact: b.beheshti@ieee.org

Register now here: https://meetings.vtools.ieee.org/m/41077

Course Summary

This course introduces the student to the use of an embedded Linux platform to design and develop embedded applications and products. Students are guided through an introduction to the embedded Linux and C programming. Use of other programming languages such as C#, Java and Python are briefly explored. Students are then exposed to the network interfacing of an embedded Linux platform wirelessly to the Internet via SSH as well as user developed custom sockets. Interacting with the physical environment for sensing and control via digital and analog interfacing are then covered. Sample code examples and hardware interfaces are also explored.

Who Should Attend

The course is designed for engineers and developers who are interested in building embedded Linux solutions. While a background in C language is helpful, Linux and C programming backgrounds are not required, and are introduced in this course. This course is also targeted at experienced developers requiring a refresher course on embedded systems design from a software point of view.


Babak D. Beheshti, PhD is Professor and Associate Dean of School of Engineering & Computing Sciences at NYIT, and President of BDB Consulting. Babak has a BE and an MS degree in Electrical Engineering from Stony Brook University, and a PhD in Electrical Engineering from University of Massachusetts, Dartmouth. A 25-year embedded-systems veteran and expert, he has designed systems as well as managed and participated in joint R&D programs with many Asian, European and US companies including Qualcomm, Siemens Mobile, Nokia, Samsung, KDDI and LG. Babak’s areas of interest include wireless sensor networks, embedded real time systems, wireless and cellular systems, and digital signal processing.

When & Where*

  • 9:00AM – 5:00 PM, Sat Oct. 22, 2016
  • NYIT Old Westbury Campus, Northern Blvd., Old Westbury

* For groups of 10 or more attendees from the same company, the course venue may be moved to the company premises upon request.

Registration Fees*

Register by: Non-Member IEEE


IEEE Student Member
Oct 10, 2016 $475 $375 $200
Oct 20, 2016 $525 $425 $250

* A basic Raspberry Pi 3 Ultimate Starter kit will be included in the registration fee

** Proof of IEEE membership is required

Fees will be refunded in full if the seminar is canceled or the registrant cannot be accommodated due to capacity limitations. Other refunds will be considered.

Decision to run: Oct 20, 2016

Course Objectives

  • To gain a basic understanding of C Programming within the embedded Linux environment
  • To learn basic networking of embedded Linux platforms for remote sensing and control
  • To gain experience in hardware and software interfacing of external devices to an embedded Linux platform
  • To understand real time constraints of a Linux environment and use of multi-processing and multi-threading to meet deadlines
  • To gain confidence to apply these concepts to one’s next embedded Linux project


Course Contents

Module 1

  • Introduction to Embedded Linux
    • Shell Interface
    • File system
    • Navigating the file system
    • Access Control and sudo Priviledges
  • Quick Introduction to C Language for Embedded Systems
    • Program Structure
    • Fundamental programming Constructs
    • Development Tools
    • Writing and compiling C programs using makefiles
    • Running C Programs in Linux


Module 2

  • Embedded Linux Platforms and their Characteristics
    • Introduction to Raspberry Pi
    • Hardware Overview
    • Initial Bring up of the Board
    • Setting up the Network Access
    • Exploring the File System and the GUI
    • Setting up a Remote SSH Client to communicate to the Raspberry Pi
  • Installing and configuring a Linux Virtual Machine on a laptop or desktop computer
    • Installing VmPlayer™
    • Installing and configuring Ubuntu Linux
  • Socket Interface and Communication over a Network
    • Setting up a socket in C on the Raspberry Pi
    • Setting up a socket in C on a laptop
    • Data Transfer via the Established Sockets


Module 3

  • GPIO Interface in Raspberry Pi
    • Overview of the Peripheral Interfaces
    • GPIO Specifics on the Raspberry Pi
    • Configuring GPIO Ports And Interfacing With External Devices
    • Working on an Example to Read from External Push Buttons
    • Working on an Example to Write to LEDs
  • Debugging Your Code
    • Debug Tools Overview
    • Use of GDB


Module 4

  • Remote access using the web interface
    • Apache webserver on RPI
    • Implementing a simple webserver site using PHP
    • Linking the embedded C code to the PHP code
  • Use of Operating System Services to Manage Complex Tasks
    • Concept of Threads
    • Multi-threading Using POSIX
    • Example Implementation of Multiple Embedded Tasks Running on Multiple Software Threads
    • Use of fork() and exec() in Linux
  • Dos and Don’ts In Designing Successful Embedded Systems
  • Conclusion


October 22, 2016
09:00 - 17:00
Event Category:


IEEE Computer Society


NYIT Old Westbury Campus
Northern Blvd
Old Westbury,
+ Google Map