Software Development & Education Center Embedded Linux & RTOS With ARM 9 µc
Embedded Linux and RTOS with ARM9 µc Introduction The course is designed for those who want to pursue Linux based Embedded Systems. Embedded Technology Training enables a student, a technologist or a hobbyist to develop microcontroller based systems the need of time is that engineer should equip with Embedded Technologies. This course of Embedded Linux is composed around ARM9 Microcontroller and Embedded Linux. This Course covers complete details about Linux kernel. Training will be given on ARM9 Development Board. It covers complete description of Embedded Linux, Programming, and Accessing of IO device. Various interfacing techniques like I2C, SPI, ADC, DAC, and USB are also discussed. So, utilize your talent with technology of present and technology of the future. EMBEDDED LINUX@ GLANCE Embedded Linux is the use of a Linux operating system in embedded computer systems such as mobile phones, personal digital assistants, media players and other consumer electronics devices, networking equipment, machine control, industrial automation, navigation equipment and medical instruments. According to survey conducted by Venture Development Corporation, Linux was used by 18% of embedded engineers EMBEDDED LINUX APPLICATIONS
Module 1: Linux System Programming Linux Basics Introduction to Linux Linux basic commands Kernel classification (Monolith kernel and Microkernel) Kernel configuration and compilation GPL legal issues Introduction to C Programming Introduction to C Control flow Statements in C Functions Arrays Pointers Pointers and functions Structures C preprocessor Link List, Doubly Linked lists Introduction to operating system What Operating Systems Do Computer-System Organization Computer-System Architecture Operating-System Structure Operating-System Operations Process Management Memory Management Storage Management Protection and Security Types of kernel Linux system Programming Files and devices Library functions
Low-level file access Managing files The standard I/O library Formatted input and output The /proc file system Working with files Unix file Structure File and directory maintenance Chmod Mkdir rmdir Low level File handling Write Read Open Umask close Library Function Semaphores message queues and shared memory what is semaphores Unix Semaphores facilities Shared memory Functions Summary Message queues Shell Programming Shell commands & variable Flow control Function I/O Scripting
Process What is a process Viewing processes Starting new process Duplicating a process image Programming example of using fork() system call Signal Viewing the header file signal.h Signal handling Signal sending POSIX Signals API Programming example of signal handling related functions. Posix threads programming Threads and Processes Creating Threads Synchronizing Threads Communicating Between Threads Programming example of using pthread related functions. IPC (Inter Process communication) Discuss various IPC mechanisms (in brief) pipe() popen() named pipes (FIFO) System V-IPC (Inter Process communication) Understanding the Linux interface facilities Semaphores, for managing access to resources Using functions like semctl(), semget(), semopt(). Shared memory, for highly efficient data sharing between programs Using functions like shmat(),shmctl(),shmdt(),shmget() Messaging, for an easy way of passing data between programs Using functions like msgget(),msgctl(),msgrcv(),msgsnd()
Socket Programming What Is a Socket? Socket Connections Socket Attributes Socket Domains Socket Types Socket Protocols Creating a Socket Socket Addresses Naming a Socket Accepting Connections Requesting Connections Closing a Socket Programming example of creating local Client and Local Server using AF_UNIX
Module 2: Embedded Linux, RTOS & ARM9 Introduction to Embedded Linux Definition of Embedded Linux Introduction to Linux Introduction to open source components Advantages of Linux kernel and open source for embedded system Kernel classification (Monolith kernel and Microkernel) GPL legal issues Embedded Linux Hardware Embedded Hardware for Linux systems Embedded Linux system Architecture Embedded Linux Development Environment Linux kernel introduction Linux features Linux versions Linux kernel source Kernel configuration Embedded Linux Development Environment Cross platform development Host system requirements Development Tools GCC Compiler GDB Debugger GDB Server Trace and profiling tools Boot loader & Tool chain Building a cross-compiling tool chain for ARM Boot loaders Configuring cross compilation tool chain Packages Cross compiling and booting a Linux kernel
Porting Porting Linux onto ARM based development board. GUI application Development Introduction to Linux GUI application Development using QT framework. Making connections Laying out Widgets Creating Dialogs Creating main windows Signal and slots RTOS Introduction to RTOS What is Real Time System? Requirements of Real time System Hard Real-time Systems and Soft Real-time Systems Task What is a task creation? Unitask approach Vs multitask approach Task states Scheduling Multitasking Kernel Context switch Priority based scheduling Round Robin scheduling Task functions Task states Task hooks Task synchronization
Module 3: Linux Kernel & Device Drivers Linux kernel introduction Linux features Linux versions Linux kernel source Kernel configuration Process Management (kernel side) The Process Process Descriptor and the Task Structure Allocating the Process Descriptor Storing the Process Descriptor Process State Manipulating the Current Process State Process Context Copy-on-Write Forking vfork() Kernel Threads Process Scheduling Multitasking Linux s Process Scheduler Policy I/O-Bound Versus Processor-Bound Processes Process Priority Time slice The Scheduling Policy in Action The Linux Scheduling Algorithm Scheduler Classes Process Scheduling in Unix Systems Fair Scheduling The Scheduler Entry Point Wait Queues
Waking Up Preemption and Context Switching System Calls System Calls Examples of system calls Examples of Standard APIs System call Implementation API-system Call-OS relationship Types of system calls Processor Affinity System Calls Yielding Processor Time Communicating with the Kernel APIs, POSIX, and the C Library Accessing the System Call from User-Space Memory Management Pages Zones Getting Pages Getting Zeroed Pages Freeing Pages kmalloc() gfp_mask Flags Action Modifiers Zone Modifiers Type Flags kfree() vmalloc() Slab Layer Design of the Slab Layer Slab Allocator Interface Allocating from the Cache The Process Address Space
The Virtual File system Common File system Interface File system Abstraction Layer Unix File systems VFS Objects and Their Data Structures The Superblock Object Superblock Operations The Inode Object Inode Operations The Dentry Object The File Object File Operations Data Structures Associated with File systems Data Structures Associated with a Process Interrupts and Interrupt Handlers Top Halves verses Bottom Halves Registering an interrupt handler Interrupt context Taslets Softirq An Introduction to Kernel Synchronization Kernel Synchronization Methods Spin locks Reader-writer locks Semaphores Timers and Time Management Jiffies Hardware clocks and timers Linux Device Drivers Introduction Role of Device Driver
Types of Device driver loadable modules and its benefits Functions used to load and unload modules Passing parameters to a loadable module Writing a device Driver Program Important header files Writing a simple module Compiling and loading modules Device information in /proc Character driver character driver basics major and minor numbers creating device files with mknod registering a character device driver Hand- on Practice Character Device Driver writing Userspace interaction Proc/sys model Lcd implementation Understanding the serial device driver
Industry Interface Program Projects Assignments / Mini Projects 1 Major Project Domains / Industry Electricals and Electronics Telecom & Communication Automobile Consumer Electronics Power & Energy Manufacturing Architecture Civil Industry Research & Development Automation Industry Retail Industry Health Care Industry
Training & Performance Tracking Knowledge related to current technology aspects and corporate level deliverable & Continuous training and assessment to make you industry ready. Throughout the Training Curriculum Candidate will go through a Scheduled Assessment Process as below: Continues Assessments Practical Workshops Modular Assignments Case Studies & Analysis Presentations (Latest Trends & Technologies) Tech Seminars Technical Viva Observing live Models of various projects Domain Specific Industry Projects
Skills Development Workshop Communication is something which all of us do from the very first day of our life, yet there is a question that haunts us most of the time Did I express myself correctly in such and such situation? The answer to this question is really tricky, because in some cases we leave our signatures and good impression but in some others we even fail to get our idea clearly. It happens mostly because we don t know how to act in certain situations. Every time we fail we don t lose completely, we do learn something, but prior knowledge of the same thing could be more beneficial because then we could have turned that failure into success. The course / workshop would focus at many aspects of personality, like: Building positive relationships with peers & seniors Building self-confidence & Developing clear communication skills Exploring and working on factors that help or hinder effective interpersonal communication Learning impacts of non-verbal behavior & Dealing with difficult situations and difficult people Workshops Consists of Following Activities: Personality Development Group Discussions & Debates Seminar & Presentations Case Studies & Analysis Corporate Communication HR & Interview Skills Management Games & Simulations Aptitude, Logical & Reasoning Assessments & Development Action Based Learning