Embisyslabs is a leading Embedded C training institute in Bangalore. With specialized Courses on Embedded C ARM Cortex platforms, students gain hands-on experience that prepares them to work on real-time embedded projects and advance their careers. Embisyslabs's embedded C course syllabus well constructed, gives an substantial hands-on experience with Industry relevant projects and assignments, good enough to build an excellent career in core domain. We also conducts Weekend and Weekdays Workshops, in our institutes Jayanagar Bengaluru Bangalore near BTM India.
MODULE 1 : Adv.C and DATA STRUCTURE PROGRAMMING
CH1. GETTING STARTED
Why C Programming LanguageHistory & Features of C
Compilation Model of C
Compiler,Assembler,Linker
How to Compile & Run a C program
Strategy of Desinging a Program
CH2. FUNDAMENTALS OF PROGRAMMING
Variables & ConstantsKeywords & Data Types
Identifires & Rules
I/O Functions
CH3. OPERATORS AND CLASSIFICATIONS
Arithmetic OperatorsBitwise Left shift
Right shift Ternary
Logical AND OR NOT
Increment Decrement
Relational Conditional
CH4. CONTROL FLOW STATEMENTS
Sequential statementsDecision making statements
if,else,nested-if
break,switch
CH5. LOOPING STATEMENTS
For LoopingWhile Looping
Do—While Looping
Continue Looping
CH6. C PRE-PROCESSOR
File inclusionMacro substitution
Conditional Compilation
#ifde, #ifndef
CH7. ARRAYS AND STRING
Definition and Description of ArrayDeclaration and details about String
Memory Layout &accessing Array Elements
String Library Functions
Two dimensional Arrays
CH8. POINTERS [PART 1]
Definition &Declaration of PointerIndirect Access using Pointers
Pass by Reference
Rela. b/w Arrays and Pointers
Type Casting
Pointer to an Array
Array of Pointers
CH9. FUNCTIONS AND ITS TYPE
Why Functions ?Function Declarations
Function Prototypes
Returning a Value or Not
Arguments and Parameters
Function Pointers
Recursion and Recursive function
CH10. SCOPE and LIFETIME OF VARIABLES
Scope and Lifelime of a variableBlock Scope
Function Scope
File Scope
Program Scope
The auto Specifier
The static Specifier
The register Specifier
The extern Specifier
The Const Modifier
The Volatile Modifier
CH11. POINTERS AND POINTER ARRAY[PART 2]
Dynamic Storage Allocationmalloc(),calloc(),realloc(),free()
Functions Returning a Pointer
An Array of Character Pointers
Two Dim.Arrays vs. Array of Pointers
Command Line Arguments
Pointers to Pointers
Use of Function Pointers
CH12. SERCHING &SORTING
Linear Search&Binary SearchBubble sort & Selection Sort
CH13. STRUCTURES PROGRAMMING
Fundamental ConceptsDescribing a Structure
Creating Structures
Operations on Structures
Functions Returning Structures
Passing Structures to Functions
Pointers to Structures
Array of Structures
Functions Returning a Pointer to a Structure
Structure Padding
# pragma Definition
CH14: STRUCTURE RELATED (UNION)
Typedef - New Name for an Existing TypeBit Fields - Memory saving concept
Union - emory saving concept
Enumerated User Defined Data Types
CH15. FILE HANDLING AND INPUT/OUTPUT
I/O Library FunctionsSystem Calls vs. Library Calls
High and Low level I/O Functions
I/O Library Functions
Standard Input/Output Descriptors
fopen(),fread(),fwrite(),fclose()
Copying a File
Character Input vs. Line Input
fscanf(),fprintf(),fclose()
fgtes(),fputs(),fgetc(),fputc()
MODULE 2: DATA STRUCTURE USING C PROGRAMMING
CH1: INTRODUCTION TO DATA STRUCTURE
Why data structure ?Definition and Classification
CH2: STACK PROGRAMMING
What is Stack?Push operatins insert an item from top end of Stack
Pop operatins delete an item from top end of Stack
Implementation of Stack using Array Pointer
Implementation of Stack using Pointer
CH3: QUEUE PROGRAMMING
What is Queue?Insert an item from front end of Queue
Delete an item from rear end of Queue
Implementation of Queue using Array Pointer
Implementation of Queue using Pointer
CH4: LINK LIST PROGRAMMING
Singly link listsCircular link lists
Double link list
Implement Below Assignment for All types of Link List
Insert an item from Front End of Link List
Insert an item from Rear End of Link List
Insert an item at Specific Postion of Link List
Delete an item from Front End of Link List
Delete an item from Rear End of Link List
Delete an item at Specific Postion of Link List
Reverse the link list
Find the middle node of link list
C and Data Structures Hands-on in Class Room
1. Hundred Subjective Questions in C and Data Structure Programming2. Hundred Objective Questions in C and Data Structure Programming
3. Two Mini Projects on C and Data Structure Programming Modules
4. Class Room Test based on C and Data Structure Programming Modules
MODULE 2: ARM7TDMI-S and EMBEDDED C PROGRAMMING
Chapter1.Introduction to ARM Processor
Why Embedded C Programming
Intro. to Cortex-A and Cortex-M Series Controller
Why Embedded C Programming
Why Assembly Programming
Difference betwwen C And Embedded C Programming
Chapter2.Programming Environment Setup and Its Use
IDE installation (Keil uVision / ARM GCC)
Downloading and installation of IDE, Flash Magic
Setting up hardware (development board)
Chapter3.Introduction to ARM Architecture[LPC2148 ]
Overview of ARM7 architecture
Features of LPC2148 microcontrollers
Pin configuration and pin descriptione
Memory map of LPC2148
Flash memory and RAM details
Internal block diagram and functional overview
Chapter4. LPC2148 GPIO Programming
Understanding ports and pins
Configuring pins as input/output
Pin Function Select Registers
Fast and Slow GPIO Registers
IOxPIN (GPIO Port Pin value register)
IOxSET (GPIO Port Output Set register)
IOxDIR (GPIO Port Direction control register)
IOxCLR (GPIO Port Output Clear register)
Chapter5.LPC2148 Interrupts and Interrupt Handling
Interrupt controller in LPC2148
Configuring and enabling interrupts
Writing ISR (Interrupt Service Routine)
Fast IRQ (highest priority)
Vectored IRQ (medium priority)
Non-Vectored IRQ (low priority)
Chapter6.LPC2148 Timer/Counter
Timer features in LPC2148
Timer Counter(TC) and Prescale Register(PR)
What is a Match Register
What are Capture Registers
Prescale (TxPR) Related Calculations
Setting up & configuring Timers
Chapter7.LPC2148 UART[Universal Asynchronous Receiver/Transmitter]
Difference between UART/USART
UART module overview
UART Frame structure
UART Baudrate Calculation
Sending and receiving data using UART
U0RBR (UART0 Receive Buffer Register)
U0THR (UART0 Transmit Holding Register)
U0DLL and U0DLM (UART0 Divisor Latch Registers)
U0LCR (UART0 Line Control Register)
Chapter8. LPC2148 ADC[Analog to Digital Converter]
ADC features in LPC2148
ADC0 has 6 channels &ADC1 has 8 channels
Steps for Analog to Digital Conversion
ADxGDR (ADCx Global Data Register)
AD0STAT (ADC0 Status Register)
ADxCR (ADC Control Register)
Chapter9. LPC2148 PWM[Pulse Width Modulation programming]
PWM functionality and applications
LPC2148 supports 2 types of PWM
7 match registers inside the PWM block
Configuring and Initializing PWM
PWM Prescale (PWMPR) Calculations
DC Motor Speed Control Using PWM
LED Dimming Using PWM
Chapter10.LPC2148 I2C[Inter Integrated Curcuit]
I2C overview
I2C-Bus Configuration
I2C Operating modes
I2C Master Transmitter mode
I2C Master Transmitter mode
I2C Implementation and operation
I2C Register description
I2C Programming
Chapter11. LPC2148 SPI[Serial Peripheral Interface]
SPI overview
SPI data transfer format
SPI data to clock phase relationship
SPI Master operation
SPI Slave operation
SPI Register description
SPI Programming
Chapter12. Practical Applications and Projects
GPIO interfacing programming
Interrupt programming
Timers and Counter programming
Motor control using PWM
PWM Programming
Temperature Sensors Interfacing programming
Piezo Sensors Interfacing programming
Accelerometer Sensors Interfacingprogramming
LCD interfacing programming
- The embedded c course has been specially designed for those who aspire to become ARM / Embedded C Programmimg and design engineer by the industrial experienced professionals
- Each module will be taught in detail, which will help the participents to start working as Embedded engineer after the course completion
- Much effort has been put into creating the syllabus, to cover the 'basics' for each module and then cover advanced Communication Protocols Peripherals topics UART, I2C, SPI,Interrupt along with the issues and resolving techniques practically
- Embedded C course module will be taught in details, which will help the candidates to take up interviews and successive job and start working after the course completion
Why C Programming Language:
C is a general-purpose programming language, which is widely used to design any type of desktop-based applications. It was developed by Dennis Ritchie as a system programming language to develop the operating system. The main features of C language include low-level access to memory, a simple set of keywords, and clean style, these features make C language suitable for system programmings like OS or compiler development. In nature it uses a native platform development scheme, ie the development of the application by it is platform-dependent and can only be used on a single platform.
Why Embedded C Programming :
Embedded C is an extension of C language and it is used to develop micro-controller based applications. The extensions in the Embedded C language from normal C Programming Language is the I/O Hardware Addressing, fixed-point arithmetic operations, accessing address spaces, etc. Embedded C Program has five layers of Basic Structures.
They are:
- Comment: These are simple readable text, written in code to make it more understandable to the user. Usually comments are written in double or single slash line
- Pre-processor directives: The Pre-Processor directives tell the compiler which files to look in to find the symbols that are not present in the program
- Global Declaration: The part of the code where global variables are defined
- Local Declaration: The part of the code where local variables are defined
- Main function: Every C program has a main function which drives the whole code. It basically has two parts the declaration part and the execution part. Where, the declaration part is where all the variables are declared, and the execution part defines the whole structure of execution in the program
- In nature it uses a cross-platform development scheme, i.e., the development of the application by it is platform-independent and can be used on multiple platforms
- Chapter1. Getting Started
- Chapter2. Fundamentals Of C Programming
- Chapter3. Operators And Classifications '
- Chapter4. Control Flow Statements
- Chapter5. Looping Statements
- Chapter6. C Pre-Processor
- Chapter7. Arrays And String
- Chapter8. Pointers and its Features
- Chapter9. Functions and its Parameters
- Chapter10. Scope and Lifetime Of Variables
- Chapter11. Pointers [Part 2]
- Chapter12. Searching &Sorting
- Chapter13. Structures and its Definition
- Chapter14. File Input/Output(I/O)
- Chapter15. Data Structures and Its Type
- Chapter1. Introduction to ARM
- Chapter2. Tool Setup and Its Use
- Chapter3. ARM Architecture '
- Chapter4. ARM Programming
- Chapter5. Interrupts and its Hander
- Chapter6. Arm Programmers Model
- Chapter7. User Peripherals
- Chapter8. System Peripherals
- Chapter9. Instruction Set Architecture
- Chapter10. I2C Interfacess
- Chapter11. SPI Interfacess
- Chapter12. Lab Sessions