Deprecated: Function tribe_get_view is deprecated since version 5.13.0! Use On version 6.0.0 this function will be removed. Please refer to https://evnt.is/v1-removal for template customization assistance. instead. in /home/ieee/public_html/wp-includes/functions.php on line 6031
- 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.
Instructor
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
Member** |
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