Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
o C-program to access GPIO ports (demo with LDR) from Linux User space
o Data acquisition from I2C based accelerometer sensor
o Diagnosis Embedded devices (With mmap NOR Flash memory example)
Linux introduction:
o What is OS
o Components of OS
o OS vs Kernel
o Kernel Services
o Types of operating systems
o Introduction to Linux
o Basic Linux commands
o Explore Linux root file system /proc/sys/bin/sbin.
o Shell scripting
Program Execution in Linux
o gcc compiler and gdb (GNU debugger)
o Executable Image contents
o Text/Code, Read only Data, Data, BSS
o Loading and running a program in Physical memory
o Loading and running a program in Virtual memory
Program with Multiple C files
o Why multiple C files
o Definition Vs Declaration
o Hiding data and functions
o Header files
Development tools in Linux
Compiler:
o Compilation Stages
o Object file format
Linker:
o Function of Linker
o Static linking Vs Dynamic linking
o Executable file format
o Executable file vs Executable Image in memory
o Archive or Libray utility, shared object (.so)
o Make utility
o gdb-Debugger
File and I/O Services (System calls)
o File descriptors
o File types
o Stdin, Stdout and Stderr File descriptors
o Link or Relationship between File Descriptor and File or device
o File descriptors of same file but from multiple processes
o File I/O system calls (unbuffered i/o)
o open, create, close, lseek, read, write, dup, dup2
o fcntl, ioctl
o File types, IDs and Access permissions
Multi-threading
o Multi-threaded programming
o Synchronization and Mutual exclusion for threads
o POSIX Semaphores
o POSIX Mutexes
Multi-Processing
o Process Identifiers
o fork, exit, wait, waitpid, execv
Signals
o Signal Concepts
o Signal(), kill(), raise(), alarm() and pause()
Inter Process Communication
1. Pipes
2. FIFO (Named pipes)
3. Message Queues
4. Semaphores
5. Shared Memory,
I/O communication
mmap system call
ioperm, iopl system call
Network Programming
o Concept of socket / socket pair
o Concept of Client and Server
o Concept connectionless and connection oriented protocols (UDP/TCP)
o Socket calls for UDP server and client
o Socket calls for TCP server and client
o Concurrent/Iterative server programming
Phase 2:
1. Introduction to Linux Kernel & Embedded Linux
Linux OS vs Linux Kernel
Kernel Source Tree
Configuring and Building Kernel
Embedded Linux Development Environment
Cross-compiling tool chains
Boot loader, booting process
Booting process on ARM TI(Embedded CPU)
U-boot Boot loader
Device Tree
Lab activities:
Install arm cross compiler and tool chain, (ARM & Power PC)
Practice U-boot commands
Debugging Embedded application using Eclipse IDE on Target Beagle
board black
Customization kernel compilation and compile using cross compiler
Configuring, Compilation and booting new kernel on Power PC T1040
board with YOCTO environment.
Build custom Linux kernel and deployment on Embedded board (to
support USB-Wifi device)
1. Kernel Modules -
Kernel Programming vs Application Programming
Kernel APIs
Module Concepts
Module tools
Module Parameters
Module stacking
Lab activities:
1. Basic Kernel Module programming with Jiffies and task_ struct contents
2. Parameter passing to kernel modules and module stacking
3. Explore insmod, modprobe, rmmod, modinfo tools
2. Character Device Drivers
Device files and Device Numbers
Opening a device
The file_operations
Registering and unregistering a device
Character Driver implementation
Proc file system support
Lab activities:
1. Write application program to access CMOS driver APIs
2. Character Device registration by using Virtual Buffer
3. Timing issues in the kernel
System tick, Tick rate and Jiffies