Embedded System
C Programming
INTRODUCTION TO C
- Design Methods
- Top Down Design
- Bottom Up Design
- Programming Languages
- Low Level language
- Machine Language
- Assembly Language
- High Level Languages
- Low Level language
- Structure of C Program
Â
Elements of C
- C Character set
- Alphabets
- Digits
- Special Characters
- Keywords/Reserved Words
- Data Types
- Constants
- Numeric Constants
- Character Constants
- String Constants
- Variables
- Variable Declaration
- Variable Initialisation
Operators And Expressions
- Arithmetic Operators
- Unary Arithmetic Operators
- Binary Arithmetic Operators
- Integer Arithmetic
- Floating Point Arithmetic
- Relational Operators
- Logical Operators
- AND (&&) Operator
- OR (||) Operator
- NOT (!) Operator
- Sizeof Operator
Â
Control Statements
- If else
- Nesting of If else Ladder
- Else if Ladder
- Loops
- While Loop
- Do While loop
- For loop
- Nesting of Loops
- Infinite Loops
- Break statement
- Continue Statement
- Switch Case
Functions
- Advantages of Using Functions
- Library Functions
- User defined functions
- Function Definition
- Function Call
- Return Statement
- Function Arguments
- Types Of Functions
- Function with no Arguments and no Return type
- Function with no Arguments and Return type
- Function with Arguments and no Return type
- Function with Arguments and Return type
- Recursion
- Advantages and Disadvantages of recursion
- Local variables In recursion
Arrays
- One dimensional Arrays
- Declaration Of 1-D Array
- Accessing 1-D Array
- Initialisation of 1-D Array
- 1-D array and Functions
- Two dimensional array
- Declaration and Accessing of 2-D Array
- Initialisation of 2-D arrays
- Introduction to Strings
Pointers
- About Memory Organisation
- Address Operator
- Pointer Variables
- Pointer Addresses
- Pointer arithmetic’s
- Pointer to Pointer
- Pointer And 1-D array
- Pointer and 2-d array
- Pointers and Functions
- Function returning Pointer
- Array of pointers
- Void Pointers
- Dynamic Memory Allocation
- malloc()
- calloc()
- realloc()
- free()
Strings
- String constants and String Variables
- String Library Functions
- strlen()
- strcpy()
- strcmp()
- strcat()
- String pointers
- Array of strings
Structures and Unions
- Defining a structure
- Declaring Structure variables
- With structure Definition
- Using Structure Tag
- Initialisation of Structure Variables
- Accessing of Members of structures
- Storage of Structures in Memory
- Structure Bit-Fields
- Sizeof structures
- Array of Structures
- Arrays within Structures
- Pointers to Structures
- Pointers Within Structures
- Structures and functions
- Self-Referential structures
C Preprocessor
- #define
- Macros and Macros With Arguments
- Nesting in Macros
- Problems with Macros
- Macros vs Functions
- Conditional Compilation
- Predefined Macros
- #pragma directive
Operation on Bits
- Bitwise AND(&&)
- Bitwise OR(|)
- Bitwise XOR(^)
- Bitwise Right Shift(>>)
- Bitwise Left Shift(<<)
- One’s Compliment
- Masking
- Bit fields
Storage Classes
- auto
- register
- static
- extern
- Design Methods
C Data Structures
Linked list
- Introduction to single linked list
- Traversing a single linked list
- Inserting an element in SLL
- Deleting a node from SLL
- Question on rearranging an SLL
- Question on moving last node to front of list
- Printing the elements of SLL using recursion
- Recursive program to reverse an SLL
- Doubly linked list
- Circular linked list
- Problems on DLL and CLL
Stacks and Queues
- Introduction to stacks
- Implementing of stacks using arrays
- Linked list implementation of stack
- Implementing of queue using arrays
- Implementing of queue using Linked list
- Implementation of queue using circular array
- Infix to postfix conversion algorithm
- Postfix evaluation algorithm
- Problems on Stacks and queues
- Trees
- Introduction to tree traversals
- Implementation of traversals and time and space analysis
- Double order traversal
- Triple order traversal
- Number of binary tress possible
- Recursive program to count number of leaves and non leaves
- Recursive program to find the height of tree
- Binary search Tree
Problems on BST
Microprocessor and Micro-Controllers
- Introduction to ARM Cortex m3
- Introduction to LPC 1313
- Memory Architecture
- GPIO Handling
- Configuring General Purpose Input and Output Module
- Switching the Peripherals (on / off)
- Signaling LED’s
- Monitoring the User Keys…etc
- LED Blinking
- Analog Joystick
- Analog touch Sensor
- Analog Encoder
- Seven Segment Display
- LCD
- ADC
- Implementation of Analog to Digital Converter
- Observing LM35(Temperature)
- Analog Voltage Measurement (POT)
- Finding Analog Joystick Positions
- DA
- PWM
- Implementation of Pulse Width Modulation
- Motor Speed Control
- Light Intensity Control
- Buzzer Sound Control
- Timers
- Implementation of Timers
- We Can Implement Task Scheduler
- For Counting Events
- For Encoder Pulses
- Systic timer
- NVIC
- Interrupts
- UART
- Implementation of Universal Asynchronous Receiver and Transmitter
- See the Controller data at live time in another Screen
- Send Instructions to Machine when it is running
- Perform Simplex communication
- I2C
- Implementation of Inter Integrated Circuit
- Transmitting the Data from Master to Outside Slave
- Saving the Live Data in EEPROM
- Handling Real Time Clock
- SPI
- Implementation of Serial Peripheral Interface
- Processor to Processor Communication
- Handling DAC with SPI
- Sending data to MAX7219(4 digit SSD)
- CAN
- Elaboration of Control Area Network
- Real time data Transmission
- Data Security
- Filtering data
- Error Handling
- Cooperative task Scheduler
- Implementation of Co-operative Task Scheduler
- Periodic Execution of tasks
- Real Time Projects
- Project1 : Setting Factory Defaults
- Usage: Fix vehicles speed limit, rpm, engine Temperature etc.
- Project2 : Smart Home Automation
- Usage: You can able to Set any electronic device when to ON and When to OFF or Automatically sensing etc.
- Interview Point of Questions
- NOTE: All Implementations are from Scratch (by seeing controller User Manual)
- Project1 : Setting Factory Defaults
Linux Internals
- Operating System
- What is an operating system?
- Why Linux?
- Linux Kernel Architecture
- The Process
- Process State
- Process Control Block
- Context Switch
- CPU scheduler
- Dispatcher
- Scheduling Algorithms
- FIFO Scheduling Algorithm
- Round robin
- Priority Based Scheduling
- Shortest Job First
- Processes
- Creating Sub process with fork
- Synchronising with the Creator process
- System commands
- The Process Table
- Orphan and Zombie Process
- Threads
- Signals
- The Operating System Interface
- What Are System Calls?
- System call Interface
- Inter-Process Communication
- Pipes
- What is Pipe?
- Parent and Child Processes
- Reading closed Pipes
- FIFO
- Accessing a FIFO
- Client/Server Using FIFO
- Process Synchronisation
- Need of Synchronisation
- Introduction to Synchronisation Mechanisms
- Conditions for Synchronisation Mechanisms
- Lock Variables
- TSL
- TSL Question
- Disabling Interrupts
- Turn Variable or Strict Alteration Method
- interested Variable
- Peterson Solution
- Tracing Peterson Solution
- Sleep and Wake
- Introduction to Semaphores
- Counting Semaphores
- Problems on Counting Semaphore
- Binary Semaphore or mutexes
- Threads
- Introduction
- Threads Creation
- Thread Termination
- Thread Synchronization
- Mutexes
- Semaphores
- Reentrancy
- Inter Process Communication
- Message Queues
- msgget
- msgsnd
- msgrcv
- msgctl
- Shared Memory segment
- shmget
- shmat
- shmdt
- shmctl
- Semaphores
- Semaphore Definition
- Linux semaphore Facilities
- Using Semaphore
- Memory Management
- Memory Hierarchy
- Virtual memory
- Fragmentation and Compaction
- Dealing with Fragmentation
- Page Table in Memory
- Memory allocation with Paging
- Sharing the processor and sharing Memory
- Swapping
- Page Tables
- Levels of page Table
- Page Table Hierarchy
- Page Tables problem
- Page Replacement
- Page Replacement Algorithms
- Virtual to Physical address translation
- Two level Translation
- Three level Translation
- Deadlocks
- What is Deadlock?
- Why Deadlock is a problem?
- Conditions for Deadlock to Occur
- How to deal with Deadlock
- Deadlock Prevention
- Deadlock Avoidance
- Deadlock Recovery
- Deadlock Handling Mechanisms
- Bankers Algorithm
- Resource allocation Graph
- Message Queues
- Pipes
C++
- INTRODUCTION
- Why C++
- Difference Between C and C ++
- Procedural Oriented Programming Language
- Object Oriented Programming Language
- WHAT IS C++
- Features of C++
- Data Encapsulation
- Data Abstraction
- Polymorphism
- Inheritance
- BASIC INPUT OUTPUT STATEMENTS IN C++
- The standard output stream(cout)
- C++ program Structure
- Compiling and Executing C++ Program
- Namespaces
- New Datatypes in C++
- SCOPE RESOLUTION OPERATOR
- Syntax of Scope resolution operator
- References
- C++ References vs Pointers
- C++ pointers vs References
- FUNCTION OVERLOADING
- What is function Overloading
- Default Values in parameters
- Argument passed by value and reference
- Inline functions
- What is Inline function?
- Reason for the need of Inline Function
- Difference between Inline functions and Macros
- Advantages of Inline functions
- CLASS
- What is Class?
- Features of Class?
- How to Write a Class?
- Access Specifiers
- Creation of Objects
- Data Encapsulation Example
- Malloc and New
- FRIEND CLASSES
- Friend functions
- Friend Classes
- Class Member Functions and Classes as Friends
- Friend Declarations
- CONSTRUCTORS
- Types of Constructors
- Default Constructor
- Parameterized Constructor
- Copy Constructor Destructor
- Types of Constructors
- OPERATOR OVERLOADING
- Operator overloading Restrictions
- Operator overloading of Different Unary and Binary Operators
- INHERITANCE
- Inheritances Between classes
- Types of Inheritance
- Single Inheritance
- Multiple Inheritance
- Multi-Level Inheritance
- Hybrid Inheritance
- Hierarchical Inheritance
- POLYMORPHISM
- Pointers to Base class
- Abstract base classes
- TEMPLATES
- Function Templates
- Class Templates
- Advantages of templates
- EXCEPTION HANDLING
- Exceptional Behaviour
- Facing an Exception
- Catching Multiple Exceptions
- Nesting Exceptions
- The standard output stream(cout)
- Features of C++
Moderated Group Discussion
- Group discussions will be running throughout the course
Embedded Systems Training (VG-EMBEDDED) is 5 months course to enable engineers develop skills in full breadth of Embedded systems starting from Advanced C, Data Structures, LPC1313 Micro controller architecture with ARM Cortex M3 processor, Linux internals and C++. Training is offered in both classroom and online training modes. Embedded Systems Training in Bangalore is targeted towards BE, ME fresher’s and Engineers working in other domains planning to make career in Embedded systems domain. Course structure is framed keeping in mind the current industry requirements.
Embedded Systems Training divided in to multiple aspects, with training focused on all aspects from Embedded Systems basics, all industry standard micro controller architectures, Embedded C programming, standard interface protocols and multiple industry standard projects on Automotive. All these topics are covered with practical examples based on these boards.
Embedded Systems Training course also covers multiple hands-on projects based on industry standard Automotive LPC1313 micro controller. Learning starts from developing simple board based projects to complex projects involving multiple peripherals connected to make a complex Embedded system. All these projects are done from scratch. Course curriculum also ensures that student does these projects hands-on with trainer guidance as part of dedicated lab sessions.
Embedded Systems Training also includes 30+ detailed assignments (10 in C and Data structures, 10 in Micro controllers and Peripherals, 10 in Linux Internals). These assignments are prepared by industry experts covering all aspects from Embedded systems. Student gets to work on these assignments with complete guidance from trainers and student learning is evaluated using completion of assignments as the sole criteria. Student is offered with multiple (more than 10+) interview opportunities based on performance in assignments. Completion of all these assignments make a fresher as good as a 3+ year experienced engineer. That’s the quality of assignments!
VLSIGuru Institute has expertise in both VLSI and Embedded system domain. We have trained more than 1000 graduates over last 5 years since training was started in 2012. VLSIGuru Institute is rated among the Best Embedded Training Institutes in Bangalore .
Below is salient features of Embedded Systems Training course.
Introduction to Embedded Systems
- C Programming on Embedded Systems
- Fundamentals of C programming
- C Data structures
- Embedded Systems interfacing with peripherals
- Micro controller Architecture
- ARM 32-bit Micro-controller
- Hands on projects
- Linux Internals
- C++ Programming
- Find the Detailed syllabus topics for each section under Syllabus Tab.
Register for Embedded Training Institutes in Bangalore
Course | Embedded Systems Training |
---|---|
Duration | 5 months |
Next Batch | Â |
Schedule | Both Saturday & Sunday(9:00AM – 12:30PM IST) |
Course repeats | Every 10 Weeks |
Fee | INR 35000 +GST |
Mode of training | Classroom training |
 | Online training using live training sessions |
Assignments | 20 |
Batch Size | 20 |
Course Highlights
- 1-1 Dedicated Mentor Support
- Â 24/7 Tool Access
- Multiple mock interviews
- Industry Standard Projects
- Support with resume update