Embedded C Programming Using ARM Microcontroller
(50 Hours)
- nasscom and Ministry of Electronics and Information Technology initiative
- Official partner with Cranes Varsity
- Certification from IT-ITeS SSC Council
- Government of India Incentive
Objectives
- Master C programming concepts from the ground up
- Understand the special features of C: pointers, header files, null-terminated strings, buffers, IO and comprehensive study of embedded systems and ARM Architecture and NXP’s LPC2129 Controller for developing Embedded Systems.
- It covers different peripherals like Timer, Interrupt, ADC, and communication protocols.
- The lectures are supplemented with lab exercises
Tools and Resources
- Linux OS
- Gcc 4.8 and above
- KeilMicroVision
- LPC2129 Development Board
Platform:
- Ubuntu (Linux OS, with gcc compiler)
- Lpc2129 development board
- Keil Micro vision , Flash Magic
Project stream:
- Application development based on Data Structure(Eg: Flood fund releasing data, cyber management systems, Bank management system, contact management system)
- Concurrent server to replicate a chat application using socket programming.
- Embedded Project development using wired/wireless technology such as GPS, GSM, BLE, Wi-Fi, and sensors
- Historical Development and features of C
- Compilation Process (Source Code – Executable File)
- Sample Program
- Variables, Keywords, Constants
- Data types
- Working with VIM
- Unary operators (++ / — )
- Binary operators / Arithmetic operators
- Assignment operators
- Relational operators, Logical Operators
- Short hand Assignment operators, Bitwise operators
- Order of Evaluation of expressions
- Formatted / Unformatted Functions
- Decision Constructs: if, if..else, ternary operator
- Switch – case
- Functions, Parts of Function
- Passing arguments to function
- Looping Constructs: while, do-while, for
- break and continue
- Working with multiple files
- Storage classes
- Storage classes specifiers: auto, register, static, extern
- Internal Linkage & External Linkage
- C Compilation Model
- File Inclusion
- Macro With and without arguments
- Macros versus constant and Functions
- Predefined Macros
- Conditional compilation
- Array and its memory layout
- Initialization of array
- Passing Array to Function
- Searching Techniques – LS and BS
- Sorting Techniques – BS and SS
- Declaring and Initializing strings, stringfunctions
- Character Lib Functions: isdigit, isspace, isalpha etc.,
- Table of String Library Functions: strlen, strcpy, strcmp, strcatetc
- Debugging using GDB
- isalpha etc.,
- Table of String Library Functions: strlen, strcpy, strcmp, strcatetc
- Debugging using GDB
- Pointer Arithematic Operation
- Relation between Pointers and Arrays
- Advanced Pointers: NULL pointer, Pointer to a constant, constant pointer
- Pointer to Array & Array of Pointers
- Function pointer & Void pointer
- Converting String to integer using atoi
- Declaration of Structure and Structure
- Variable
- Memory allocation Concept and accessing Structure Members
- Passing Structure to Function by value / Address
- Array of Structure
- Nested Structure
- Self-referential Structure
- Bitfield
- Union
- Enum
- Type def
- CPU Architectures: RISC vs. CISC, Little endian vs. Big endian vs. Bi-endian
- Memory alignment
- Memory classifications
- Types of Main-memory
- The memory Hierarchy
- Input and Output – Overview
- Input and Output – I/O Controllers
- I/O Interfacing
- Input and Output – I/O Mechanisms
- Input and Output – I/O Device mapping
- Memory mapped I/O Introduction to ARM7
- Features of ARM architecture, STATES & MODES
- ARM Programmers model
- ARM7 Block diagram
- Introduction to the LPC2129 kit and schematics
- Introduction to the µvision-4 Keil IDE
- Demo: Flash Magic
GPIO
Functionality of parallel ports
- Programming of the LED, BUZZER
- Programming of the LCD
- Understanding the concepts of TIMER basics
- Application of Timer
- Usage of Timer Registers
- Programming Timer block with respect to different applications
- Timer’s Match register
- Introduction to Interrupt concept
- Vectored IRQ and Non-Vectored IRQ
- Understanding of the Registers related to Interrupts
- Programming interrupt block with the reference of the External Interrupts
- Applications and the usage of PINSEL register
- Introduction to ADC
- ADC Related Registers
- Interfacing Temperature sensor and potentiometer
- Introduction to WDT
- WDT Related Registers
- Resetting the system using WDT
PWM
- Introduction to PWM
- PWM Related Registers
- Generating the PWM signal
- Introduction to communication protocols
- Parallel vs Serial communication
- Introduction to UART
- Baud rate calculation
- Registers description for UART configuration
- Communication between PC and MC
- Communication between MC to MC
- Advantages and disadvantages of UART
UART
- Introduction to SPI Protocol
- Registers used in SPI
- Different modes of operation
- Designing clock speed of the SPI
- Exceptions in SPI
- Interfacing 7 segment display using SPI interface.
- Advantages and Disadvantages of SPI protocol.
- Introduction to I2C Protocol
- Registers used in I2C Protocol
- Different modes of operation
- Handling of Multi-master using arbitration technique.
- Designing the clock speed
- Advance concepts in I2C like clock stretching, 10-bit addressing etc.
- Interfacing of EEPROM using I2C Protocol.
- Advantages and disadvantages of I2C protocol.
- Advantages and disadvantages of I2C protocol.
- Embedded Project development using wired/wireless technology such as GPS, GSM, BLE, Wi-Fi and sensors