ED501 : Embedded C and ARM Cortex Microcontrollers ( 20 Days )

Module Duration : 20 Days

Objectives

This module is framed to set the required background in embedded system concepts and ‘C’ language for the rest of the modules. It aims at familiarizing the students in embedded concepts and programming in ‘C’. This module covers the advanced topics in ‘C’ such as Memory management, Pointers, Data structures which are of high relevance in embedded software is considered in depth. This module makes use of KEIL C Compiler along with ARM Cortex Microcontrollers.

This module covers the architecture of the popular 32-bit bit Microcontroller such as ARM. The ARM Cortex processor is the industry-leading 32-bit processor for highly deterministic real-time applications, specifically developed to enable partners to develop high-performance low-cost platforms for a broad range of devices including microcontrollers, automotive body systems, industrial control systems and wireless networking and sensors.

Course Description

Embedded Concepts

Introduction to embedded systems, Application Areas, Categories of embedded systems, Overview of embedded system architecture, Specialties of embedded systems, recent trends in embedded systems, Architecture of embedded systems, Hardware architecture, Software architecture, Application Software, Communication Software, Development and debugging Tools.

 ‘C’ and Embedded C

Introduction to ‘C’ programming, Storage Classes, Data Types, Controlling program flow, Arrays, Functions, Memory Management, Pointers, Arrays and Pointers, Pointer to Functions and advanced topics on Pointers, Structures and Unions, Data Structures, Linked List, Stacks, Queues, Conditional Compilation, Preprocessor directives, File operations, Variable arguments in Functions, Command line arguments, bitwise operations, Typecasting.

Introduction to ARM Cortex Architecture

Introduction to 32-bit Processors, The ARM Architecture, Overview of ARM, Overview of Cortex Architecture, Cortex M3 Register Set and Modes, Cortex M3 Processor Core, Data Path and Instruction Decoding, ARM Cortex M3 Development Environment, Assembler and Compiler, Linkers and Debuggers, ARM, Thumb & Thumb2 instructions, Mixing ARM & Thumb Instructions, Memory hierarchy, Memory Mapping, Cache.

Cortex M3 Microcontrollers & Peripherals

Cortex M3 based controller architecture, Memory mapping, Cortex M3 Peripherals – RCC, GPIO, Timer, System timer, UARTs, LCD, ADC, Cortex M3 interrupt handling – NVIC. Application development on Cortex M3 controllers using standard peripheral libraries.

Text Books:

Embedded/Real Time Systems Concepts, Design and Programming Black Book, Prasad, KVK.
Let us C by Yashwant Kanetkar.
The Definitive Guide to the ARM Cortex M3, Joseph Yiu, Newnes.
Reference Books:

  1. Embedded Systems Architecture Programming and Design: Raj Kamal, Tata McGraw Hill.
  2. Embedded C, Pont, Michael J
  3. Embedded Systems an Integrated Approach: Lyla B Das, Pearson
  4. C Programming by Worthington, Steve
  5. C Programming language, Kernighan, Brian W, Ritchie, Dennis M
  6. Art of C Programming, JONES, ROBIN,STEWART, IAN
  7. C Programming for Embedded systems, Zurell, Kirk
  8. Assembly language Programming ARM Cortex-M3, Vincent Mahout, Wiley
  9. Embedded Linux: Hardware, Software, and Interfacing, Hollabaugh, Craig.
  10. Embedded/Real-Time Systems: Concepts, Design and Programming: The Ultimate Reference, Dr. K.V.K.K. Prasad, Published by Wiley DreamTech, 2003
  11. ARM System Developer’s Guide – Designing and Optimizing System Software by: Andrew N Sloss, Dominic Symes, Chris Wright; 2004, Elseiver.
  12. Cortex M3 Reference manual.
  13. STM32Ldiscovery datasheets, reference
  14. Chibi-OS / RT API reference manuals & documents.
English