Josh Innovations

Advanced Embedded Training

By: Mr Janardhan Veeramreddy

Course Content

Advanced Embedded Training

Introduction to C

    Why C in Embedded
  • ANSI Standard
  • Fundamentals of C
  • Datatypes and Constants
  • Simple & Formatted I/O
  • Memory Usage
  • Operators & Expressions
  • Flow Control
  • Loops

Functions

  • Role of Functions
  • Pass by value / reference
  • Returning values from Functions
  • Recursive Functions
  • Call Back Functions
  • Implications on Stack
  • Library Vs User defined function
  • Passing variable number of arguments

Arrays

  • Defining, initializing and using arrays
  • Multi Dimensional Arrays
  • Arrays of Characters and Strings
  • Arrays and Pointers
  • Passing arrays to functions
  • String handling with and without library functions

Storage Classes

  • Scope and Life
  • Automatic, Static, External, Register
  • Memory(CPU / RAM)

Structures & Unions

  • What structures are for
  • Declaration, initialization
  • Accessing like objects
  • Nested Structures
  • Array of Structures
  • Passing structures through functions
  • Allocation of memory and holes
  • Structure Comparison
  • Structure bit operation
  • Typedef for portability
  • Unions
  • Overlapping members

Enumerated data types

  • Enum, Indexing, enum Vs #define

Bit Operations

  • AND ( & ), OR ( | ), XOR ( ^ )
  • Compliment ( ~ )
  • Left-Shift ( << ), Right Shift ( >> )
  • Masking, Setting, Clearing and Testing of Bit / Bits

Pointers

  • The purpose of pointers
  • Defining pointers
  • The & and * operators
  • Pointer Assignment
  • Pointer Arithmetic
  • Multiple indirections
  • Advanced pointer types
  • Generic and Null Pointer
  • Function Pointers
  • Pointers to Arrays and Strings
  • Array of Pointers
  • Pointers to Structure and Union
  • Pointers to Dynamic memory
  • Far, Near and Huge Pointers
  • Pointer Type Casting

Dynamic Memory Allocation

  • Malloc(), Calloc(), Realloc(), Free()
  • Farmalloc(), Farcalloc()

File Handling Concepts

  • Concept of a FILE data type
  • Inode, FILE structure
  • File pointer
  • Character handling routines
  • Formatted Data Routines
  • Raw data Routines
  • Random Access to FILE

Command line Arguments

  • Argc, argv
  • Variable Inputs to the main

Compiler in Practical

  • Preprocessor Directives
  • Compiler, Assembler, Linker
  • Conditional Compilation
  • Multiple File Compilation
  • Code Optimization techniques
  • Volatile, #pragma

Data Structures

  • Linear & non-linear
  • Homogeneous & non-homogeneous
  • Static & Dynamic
  • Single, Double & Circular Linked Lists
  • Stacks & Queues
  • Binary Trees

Sorting and Searching Techniques

  • Insertion, Selection, Bubble, Merge, Quick, Heap

Concepts and Real-time Exposure

  • Development Tools and Environment
  • Make Utility
  • Industry Coding Standards
  • Object / Executable File Format
  • Debugger

Introduction

  • Kernel Architecture
  • Application
  • Shell and Services
  • System Calls
  • Error Handling

Library

  • Linker and Loader
  • Static Dynamic Library

Process Management

  • Process Control Block
  • Process Creation and Exit
  • Process Scheduling Policies
  • Process Limits
  • Process Priorities
  • Foreground & Background Processes
  • Race Condition
  • Synchronization
  • Copy-on-write
  • Process time values
  • Daemon Process

Interrupts

  • Process Interrupt
  • Raise of Signal
  • Catching signal
  • Signal action

File Management

  • Files and File Attributes
  • File Descriptor
  • File I/O
  • Duplicating File & File Descriptor
  • File Control operations
  • File types
  • Protection
  • Inode

Inter Process Communication & Synchronization

  • Pipe
  • Fifo
  • Message Queue
  • Shared Memory
  • Client – Server properties
  • Semaphore

Threads

  • Creation
  • Termination
  • Synchronization
  • Attributes

Memory Management

  • Paging
  • Reentrancy
  • Segmentation
  • Virtual Memory
  • Memory Protection
  • Memory Sharing

Shell Script

  • Types of Shell
  • Shell Variables
  • Control Statements
  • Looping
  • Command Line Arguments

Networking and TCP/IP Applications

  • Network Structure
  • Classifications and Topologies
  • Switching and Routing
  • Gateway, repeater, Hub, Bridge
  • OSI & TCP/IP Protocol Layers
  • Physical & Logical Addresses
  • ARP & RARP
  • Internet Protocol
  • Routing Protocol and IP Datagrams
  • Error and Control Messages (ICMP) UDP
  • Transfer Control Protocol
  • TCP Networking Applications
  • (FTP, TFTP,TELNET,DNS,DHCP,SNTP,POP3,IMAP,SNMP)

Socket Programming

  • Overview
  • Concurrent Processing
  • Programming Interface
  • Socket Interface
  • Client / Server Design
  • Concurrent Connection-Oriented Servers
  • Socket Calls for TCP and UDP
  • Single Process
  • Concurrent Servers
  • Remote Procedure Call
  • Implementation of TFTP / SMTP

RTOS RT-LINUX

  • RT- Linux
  • Different types of Operating systems
  • RTOS basics – Linux as Real Time
  • RTOS Introduction (Hard Real Time, Soft Real time)
  • Latency in Linux, Priority Inheritance
  • Linux 2.6 features for realtime
  • 2.6 Kernel Compilation
  • RT LINUX patching
  • Linux RTPREEMPT Patches
  • Configuring the Kernel with RT-PATCH
  • Implemantation of Real Time application
  • Linux real-time API
  • Measuring and camparing scheduling latency in standard Linux and in RT-Linux with the latest RT patches
  • Porting RT-Linux on ARM and application development
  • Overview
  • Characteristics
  • Function Overloading
  • Scope Resolution Operator
  • Classes in C++
  • Access Specifiers
  • Constructor, Destructor
  • Static members, Functions
  • Friend Classes, Friend Functions
  • Operator Overloading
  • Data Conversions
  • Inheritance, Polymorphism
  • Exception Handling, Templates
  • Input and Output Streams
  • Introduction
  • Core Features
  • Version History
  • Data Flow Model
  • Registers
  • CPU Modes
  • Memory Organization
  • Interrupts
  • Pipelining
  • ARM Assembly Language Programming
  • Addressing Modes
  • ARM 7 Instruction Set (20/80% -rule of assembly language)
  • Usage of Keil IDE
  • Demonstrating ARM ISA
  • Demonstrating THUMB ISA
  • ARM Embedded C language Implementation
  • Exposure to an ARM7 CPU Core Based Microcontroller
  • LPC2114-ARM7 Based Microcontroller from Philips Semiconductors
  • On-Chip System Peripherals
  • Bus Structure (AMBA)
  • Memory Map
  • Phase Locked Loop
  • VPB Driver
  • Pin Connect Block
  • On-ChipUser Peripherals
  • General Purpose I/0 : Demo using switch & LED
  • Vectored Interrupt Controller (VIC)
  • External Interrupts : Demos
  • MCU: LPC11C24
  • CPU: ARM Cortex
  • IDE: Keil MDK ARM
  • RGB LED
  • 7-Segment Display
  • Matrix Keypad
  • 16X2 LCD
  • EEPROM
  • PWM
  • Interrupts
  • Serial Communication
  • Debugger: Simulator/ ULINK2
  • RTOS: FreeRTOS
    • Multitasking
    • Task Management
    • Semaphores
    • Mutexes
    • Message Queues
    • Interrupt Service Routines

Register

Copyright © Josh Innovations 2021.All right reserved.Created by Starsite