โ
Task 5: Preprocessor and the volatile Keyword in C
๐ฏ Objective:
Understand how the C preprocessor works and learn the importance of the volatile keyword in embedded systems programming.
๐น To Do:
๐ฅ Watch Session 5: Preprocessor and the volatile keyword in C
Link: https://drive.google.com/file/d/1CalBJ1DLfsS_Yckc_5-b9AP9gWBAzslt/view?usp=sharing
๐ Make notes on:
- What is the C Preprocessor?
- Preprocessor directives (
#define,#include,#ifdef, etc.) - Macro functions and constants
- Conditional compilation
- What is the
volatilekeyword? - Why
volatileis important in embedded systems - Example use cases of
volatile
๐ Revise the concepts carefully.
๐ Mini Practice:
- Write a program using macros.
- Demonstrate the use of
volatilevariable. - Use conditional compilation in a small example.
โ Task 6: Bitwise Operators in C
๐ฏ Objective:
Learn how bitwise operators work and how they are used in low-level and embedded programming.
๐น To Do:
๐ฅ Watch Session 6: Bitwise Operators in C
Link: https://drive.google.com/file/d/1DMFCUCAGKc_LGvS5BMPm-SvYSezPp6hg/view?usp=sharing
๐ Make notes on:
- What are bitwise operators?
- AND (
&) - OR (
|) - XOR (
^) - NOT (
~) - Left shift (
<<) - Right shift (
>>) - Bit masking techniques
- Real-world embedded examples
๐ Revise the concepts carefully.
๐ Mini Practice:
- Write programs using each bitwise operator.
- Perform bit masking on a number.
- Toggle specific bits in a variable.
โ Task 7: Arrays and Pointer Arithmetic
๐ฏ Objective:
Understand how arrays work in C and how pointer arithmetic is used to access and manipulate memory.
๐น To Do:
๐ฅ Watch Session 7: Arrays and Pointer Arithmetic
Link: https://drive.google.com/file/d/1I3qS1MwRfPv4y6z1h3GRr3Z-F6Vx5kCI/view?usp=sharing
๐ Make notes on:
- What are arrays in C?
- Types of arrays
- Relationship between arrays and pointers
- Pointer arithmetic operations
- Accessing arrays using pointers
- Memory layout of arrays
๐ Revise the concepts carefully.
๐ Mini Practice:
- Create programs using single-dimensional arrays.
- Access array elements using pointers.
- Perform pointer arithmetic operations.
โ Task 8: Functions in C and the Call Stack
๐ฏ Objective:
Learn how functions work in C and understand how the call stack manages function calls.
๐น To Do:
๐ฅ Watch Session 8: Functions in C and the Call Stack
Link: https://drive.google.com/file/d/1RI9MQOW31Lb4-w1rTaA9IYO2rEm4rA-f/view?usp=sharing
๐ Make notes on:
- What are functions in C?
- Function declaration and definition
- Parameter passing
- Return values
- What is the call stack?
- Stack frame concept
- Function execution flow
๐ Revise the concepts carefully.
๐ Mini Practice:
- Write programs with multiple functions.
- Pass parameters between functions.
- Trace function calls using stack understanding.
โ Task 9: Modules, Recursion & ARM Procedure Call Standard (AAPCS)
๐ฏ Objective:
Understand modular programming, recursion concepts, and how ARM uses procedure call standards.
๐น To Do:
๐ฅ Watch Session 9: Modules, Recursion, ARM AAPCS
Link: https://drive.google.com/file/d/1PlvfIpZpl8l6B6nm0IlEyFGfqVZuNyGQ/view?usp=sharing
๐ Make notes on:
- What is modular programming?
- Benefits of modules in embedded development
- What is recursion?
- Recursive vs iterative approach
- ARM Application Procedure Call Standard (AAPCS)
- Parameter passing in ARM
- Register usage in function calls
๐ Revise the concepts carefully.
๐ Mini Practice:
- Write a recursive function example.
- Break a program into multiple modules.
- Analyze function call behavior.
โ Task 10: Stack Overflow and Other Function Pitfalls
๐ฏ Objective:
Learn common mistakes in functions and understand stack overflow issues in embedded programming.
๐น To Do:
๐ฅ Watch Session 10: Stack Overflow and Other Pitfalls of Functions
Link: https://drive.google.com/file/d/1D8WnkTUjwSn5XRGpdZaQ3jQlFaIAeTLS/view?usp=sharing
๐ Make notes on:
- What is stack overflow?
- Causes of stack overflow
- Infinite recursion problems
- Function memory usage
- Debugging function issues
- Best practices for writing safe functions
๐ Revise the concepts carefully.
๐ Mini Practice:
- Write a recursive function and analyze stack behavior.
- Identify a stack overflow scenario.
- Apply best practices to prevent stack issues.
