courses > Modular Syllabus
- A ) Introduction to Processor Architectures
-
- 8, 16, 32 bit architecture, RISC / CISC
- Choosing an architecture for an embedded application
- B ) 32 bit RISC architecture programming model
-
- Instruction set & Assembly language programming.
- Assignments and exercises (1 & 2)
- C ) Introduction to Embedded C.
-
- Data types and alignment.
- Endian-ness and Byte ordering
- Parameter passing
- Procedure calls and returns.
- Mixed C and Assembly language programming.
- Assignments and exercises. (3a)
- D ) Embedded device programming in C.
-
- Assignments and exercises. (3b)
- E ) Exception handling in C
-
- Exception types with reference to ARM architecture
- Timer Interrupt
- Assignments and Exercises (4)
- F ) C language optimization techniques
-
- Identifying performance issues.
- Identifying the bottleneck in the software/firmware
- Writing efficient C for embedded systems
- Assignments and Exercises (5, 6)
- Assignments and Exercises
-
- Development environment, Debuggers, Make files, Linker script files, Map files, Binutils
- Assembly language instructions execution
- Embedded C programming
- Calling the assembly functions from C and vice versa.
- Memory mapped I/O, GPIO, LED, ADC Programming
- Vector Interrupt controller.
- Timer.
- Exception handling: Timer interrupt
- Optimization techniques
- Using Switch cases, Loop unrolling, choosing among the different loops.
- Dealing with data alignments issue, Cache considerations (Using cache for optimal use, and avoiding it in Memory mapped).
- Pipeline considerations (avoiding stalls by rearranging the code).
- Consideration for executing from ROM/RAM.
|