Training Categories

Click on a link to see more about each course.

Technical Training

Schedule

Course Outline

Dates Offered (click on the desired date to register):


This course is currently not scheduled for the near future.

Embedded Linux

Course Number:  LIN8

Course Description: 

Embedded systems exist in everything from our planes, trains, wireless devices, automobiles and televisions, to our microwaves-they are small, low powered and adaptable to a wide variety of environments. This course is designed for embedded system developers that need an understanding of the basics as well as the advanced concepts and topics involved in the creation, implementation and usage of a custom version of Linux for an embedded system and real time systems. Topics such as internal structure of Linux, kernel compilation, cross compilation, real world interfacing, alternatives for file systems, GUI development, booting from a variety of architectures, network integration, and kernel debugging are covered. Additional topics covered are hardware designs for Linux platforms using serial, parallel, USB, I/O port and I2C interfaces. This course will also explore why Linux is a great choice for an embedded application and what to look for when choosing hardware.

Objectives: 

Embedded systems exist in everything from our planes, trains, wireless devices, automobiles and televisions, to our microwaves-they are small, low powered and adaptable to a wide variety of environments. This course is designed for embedded system developers that need an understanding of the basics as well as the advanced concepts and topics involved in the creation, implementation and usage of a custom version of Linux for an embedded system and real time systems. Topics such as internal structure of Linux, kernel compilation, cross compilation, real world interfacing, alternatives for file systems, GUI development, booting from a variety of architectures, network integration, and kernel debugging are covered. Additional topics covered are hardware designs for Linux platforms using serial, parallel, USB, I/O port and I2C interfaces. This course will also explore why Linux is a great choice for an embedded application and what to look for when choosing hardware.

Benefits: 

See description

Target Audience: 

Linux system developers, software engineers, programmers/developers tasked with learning how to create embedded systems under Linux.

Prerequisites: 

· Experience in C and C++ programming · Equivalent UNIX or Linux workstation user skills for developers · Shell scripting in a UNIX or Linux environment · Experience with editors such as vi, emacs

Course Length:  4 Days

CourseTopics:

1. Introduction to Embedded OS, Tools and Methods o What does embedded mean? o What does real time mean? o Embedded development differences o Linux, open source, and the law, re: embedded development o Building your own environment with GNUPro tools 1. GNU software tool sets: Cross Compiling, Cross Configuration and Debugging o Embedded methods and processes o Cross-compiling 1. Compile, link, and insert kernel modules, including sound and NIC drivers 2. Cross compile Linux applications for x86, PowerPC, StrongARM, Hitachi SH7708, NEC VR4300, and MIPS o Remote debugging 1. gdb configuration 2. Debug monitors - RedBoot, etc 3. Kernel debuggers such as kdb and kgdb o Remote serial protocol 1. Input - Anti-collision RFID (employee location, user access) 2. Output - User notification signage o gdbserver 2. Embedded Linux o Linux and embedded Linux 1. Real-time solutions such as RTAI, RTLinux, eCos and Linux/RK o Linux kernel source code 1. Build a custom, reduced size Linux kernel 2. Compile, link, and insert kernel modules, including sound and NIC drivers 3. File systems such as ROMfs, Cramfs, RamDIsk, and ReiserFS o EDK on MBX PPC SBC o Linux code size requirements o Linux System requirements o Running Linux on CPUs without an MMU o Linux initialization procedure 1. The Linux boot sequence o Hacking inittab o Modifying kernel init o Initial disk images 1. Create a bootable Linux floppy complete with a Filesystem 2. boot loaders for non-Intel architectures 3. Board Support Issues o Drivers and loadable kernel modules o Kernel modules and device I/O 1. Basic device driver concepts such as how one communicates with a driver, how to register a character driver, and task queues. 2. Writing a basic device driver o Kernel module API o Interrupts o Board support 1. Flash devices such as DiskOnChip 4. Embedded Applications o Application development methods 1. Small libraries such as uC-Libc and newlib to Glibc 2. Develop an application that uses system calls directly, without library wrappers o POSIX RTOS Profile, EL/IX Level I 1. Use soft real-time solutions that involve low latency patches, improved scheduling, and POSIX API calls o Comparative issues between Embedded QT, and Microwindows o eCOS 5. System Administration of embedded devices o SNMP o HTTP o Security of embedded Linux devices 6. Red Boot ROM Monitor o Recovery Processes o Application crashes o Linux boot problems 7. Networked devices o Wired devices o Wireless devices 8. Linux on Motorola MBX, Cirrus Logic EP-7209 and EP-7212, ARM9 and ARM Thumb, Intel x86 and StrongARM, Hitachi SH7708, NEC VR4300, and PowerPC.

Phone:  772 217 3261

Email:  info@jhltech.com

Contact Us