Course Code: ansices
Duration: 14 hours
Prerequisites:

None

Overview:

C programming with a focus on how to use it for Embedded System Developments.

Course Outline:

C Basic data types

  • Integer types
  • Floating point types
  • Pointers (pointer arithmetic, pointer derefencing)
  • Arrays
  • The relationship between arrays and pointers
  • Enums

Programming constructs

  • if - else statements
  • switch statements
  • while loops and do - while loops
  • for loops
  • goto statements
  • Functions in C
  • Function prototypes
  • Understanding C's call by value mechanism for passing arguments
  • Implementing functions
  • Calling functions
  • Using pointers to pass values by reference
  • Passing arrays to functions
  • Understanding C's return value mechanism
  • Using pointers to return values by reference

Data Structures

  • Defining data structures
  • Accessing and manipulating the elements of a data structure
  • Pointers to data structures
  • The arrow (->) operator
  • Using a pointer to traverse an array of data structures

Advanced topics

  • Pointers to pointers
  • Function pointers
  • Const and static keywords - their meanings and uses
  • Casts and casting  Using void * pointers
  • Data structures containing pointers to data structures
  • Data structures containing function pointers
  • Function pointers and table driven programming
  • Bit fields in data structures
  • Unions
  • Using arrays to implement circular buffers and stacks
  • Modules as data structures and interfaces
  • Dynamic data structures and their uses
    • Singly linked lists
    • Doubly linked lists

Overview of the C standard library

  • putc, putchar, getc, getchar
  • printf, scanf
  • String manipulation functions (strcpy, strcat, ...) Embedded System Oriented Topics
  • Setting up port addresses
  • Defining bit oriented data structures
  • Compiler specific features
    • #pragmas
    • Non ANSII C extensions
    • Accessing and manipulating special function registers
    • Implementing interrupt handlers
    • Calling assembly code from C
    • Calling C from assembly code
  • Linkers and linker scripts
  • Understanding target peripheral device libraries and their uses
  • Implementing your own device libraries
  • Timers and their uses
    • Hardware timers
    • Software timers

Basics of event driven programming

  • Port I/O - flashing LEDs
  • Software delays
  • Keypad scanning
  • Basic RS232
  • Basic data acquisition and sensor interfacing
  • Working with EEPROM (on chip and SPI/I2C)
Sites Published:

United Arab Emirates - Ansi C for Embedded Systems

Qatar - Ansi C for Embedded Systems

Egypt - Ansi C for Embedded Systems

Saudi Arabia - Ansi C for Embedded Systems

South Africa - Ansi C for Embedded Systems

Brasil - Ansi C for Embedded Systems

Canada - Ansi C for Embedded Systems

中国 - Ansi C for Embedded Systems

香港 - Ansi C for Embedded Systems

澳門 - Ansi C for Embedded Systems

台灣 - Ansi C for Embedded Systems

USA - Ansi C for Embedded Systems

Österreich - Ansi C for Embedded Systems

Schweiz - Ansi C for Embedded Systems

Deutschland - Ansi C for Embedded Systems

Czech Republic - Ansi C for Embedded Systems

Denmark - Ansi C for Embedded Systems

Estonia - Ansi C for Embedded Systems

Finland - Ansi C for Embedded Systems

Greece - Ansi C for Embedded Systems

Magyarország - Ansi C for Embedded Systems

Ireland - Ansi C for Embedded Systems

Luxembourg - Ansi C for Embedded Systems

Latvia - Ansi C for Embedded Systems

España - Ansi C para Sistemas Embebidos

Italia - Ansi C for Embedded Systems

Lithuania - Ansi C for Embedded Systems

Nederland - Ansi C for Embedded Systems

Norway - Ansi C for Embedded Systems

Portugal - Ansi C for Embedded Systems

România - Ansi C for Embedded Systems

Sverige - Ansi C for Embedded Systems

Türkiye - Ansi C for Embedded Systems

Malta - Ansi C for Embedded Systems

Belgique - Ansi C for Embedded Systems

France - Ansi C for Embedded Systems

日本 - Ansi C for Embedded Systems

Australia - Ansi C for Embedded Systems

Malaysia - Ansi C for Embedded Systems

New Zealand - Ansi C for Embedded Systems

Philippines - Ansi C for Embedded Systems

Singapore - Ansi C for Embedded Systems

Thailand - Ansi C for Embedded Systems

Vietnam - Ansi C for Embedded Systems

India - Ansi C for Embedded Systems

Argentina - Ansi C para Sistemas Embebidos

Chile - Ansi C para Sistemas Embebidos

Costa Rica - Ansi C para Sistemas Embebidos

Ecuador - Ansi C para Sistemas Embebidos

Guatemala - Ansi C para Sistemas Embebidos

Colombia - Ansi C para Sistemas Embebidos

México - Ansi C para Sistemas Embebidos

Panama - Ansi C para Sistemas Embebidos

Peru - Ansi C para Sistemas Embebidos

Uruguay - Ansi C para Sistemas Embebidos

Venezuela - Ansi C para Sistemas Embebidos

Polska - Ansi C for Embedded Systems

United Kingdom - Ansi C for Embedded Systems

South Korea - Ansi C for Embedded Systems

Pakistan - Ansi C for Embedded Systems

Sri Lanka - Ansi C for Embedded Systems

Bulgaria - Ansi C for Embedded Systems

Bolivia - Ansi C para Sistemas Embebidos

Indonesia - Ansi C for Embedded Systems

Kazakhstan - Ansi C for Embedded Systems

Moldova - Ansi C for Embedded Systems

Morocco - Ansi C for Embedded Systems

Tunisia - Ansi C for Embedded Systems

Kuwait - Ansi C for Embedded Systems

Oman - Ansi C for Embedded Systems

Slovakia - Ansi C for Embedded Systems

Kenya - Ansi C for Embedded Systems

Nigeria - Ansi C for Embedded Systems

Botswana - Ansi C for Embedded Systems

Slovenia - Ansi C for Embedded Systems

Croatia - Ansi C for Embedded Systems

Serbia - Ansi C for Embedded Systems

Bhutan - Ansi C for Embedded Systems

Nepal - Ansi C for Embedded Systems

Uzbekistan - Ansi C for Embedded Systems