โœ… Task 10: Stack Overflow & Other Function Pitfalls

๐ŸŽฏ Objective:
Understand stack behavior and common mistakes while working with functions in C.

๐Ÿ”น To Do:
๐Ÿ“บ Watch Session 10: Stack Overflow and Other Pitfalls of Functions


๐Ÿ”— Link: https://drive.google.com/file/d/1D8WnkTUjwSn5XRGpdZaQ3jQlFaIAeTLS/view?usp=drive_link

๐Ÿ“ Make notes on:

  • What is stack overflow?
  • Function call stack behavior
  • Recursion pitfalls
  • Memory mismanagement in functions
  • Debugging techniques

๐Ÿ” Revise concepts carefully

๐Ÿ“Œ Mini Practice:

  • Write a recursive function and test limits
  • Create a scenario causing stack overflow
  • Debug and fix the issue


โœ… Task 11: Standard Integers in C

๐ŸŽฏ Objective:
Learn about integer types and their importance in embedded programming.

๐Ÿ”น To Do:
๐Ÿ“บ Watch Session 11: Standard Integers
๐Ÿ”— Link: https://drive.google.com/file/d/1ybhad1E-hH5FH6DwnAtXrtTh65IhzRC5/view?usp=drive_link

๐Ÿ“ Make notes on:

  • Integer types (int, short, long)
  • Signed vs unsigned
  • Fixed-width integers (stdint.h)
  • Memory size and range
  • Embedded system relevance

๐Ÿ” Revise concepts carefully

๐Ÿ“Œ Mini Practice:

  • Write programs using different integer types
  • Print size of each type
  • Use uint8_t, int32_t in examples


โœ… Task 12: Structures in C & Cortex Interface

๐ŸŽฏ Objective:
Understand structures and their role in embedded system programming.

๐Ÿ”น To Do:
๐Ÿ“บ Watch Session 12: Structures in C and Cortex Microcontroller Interface
๐Ÿ”— Link: https://drive.google.com/file/d/1Y_-RXGoHBAC3m1YAlsrZTEC_ljIchyyW/view?usp=drive_link

๐Ÿ“ Make notes on:

  • Structure syntax
  • Nested structures
  • Memory alignment
  • Use in embedded systems
  • Peripheral mapping concepts

๐Ÿ” Revise concepts carefully

๐Ÿ“Œ Mini Practice:

  • Create and use structures in programs
  • Access and modify structure members
  • Simulate embedded-style structure usage


โœ… Task 13: Startup Code (Part 1)

๐ŸŽฏ Objective:
Learn how startup code initializes the system in ARM-based microcontrollers.

๐Ÿ”น To Do:
๐Ÿ“บ Watch Session 13: Startup Code Part 1
๐Ÿ”— Link: https://drive.google.com/file/d/1VmoI_i-3Tzv72WfSHxU9PKqaeh75vyFf/view?usp=drive_link

๐Ÿ“ Make notes on:

  • What is startup code?
  • Reset handler
  • Memory sections (.data, .bss)
  • Initialization flow
  • Boot process basics

๐Ÿ” Revise concepts carefully

๐Ÿ“Œ Mini Practice:

  • Analyze a simple startup file
  • Identify memory sections
  • Trace execution from reset to main()


โœ… Task 14: Startup Code (Part 2)

๐ŸŽฏ Objective:
Understand advanced startup code concepts, including vector tables and interrupt handling in ARM-based systems.

๐Ÿ”น To Do:
๐Ÿ“บ Watch Session 14: Startup Code Part 2
๐Ÿ”— Link: https://drive.google.com/file/d/15OgVMceVZSC4ZdMfsRPijvAqHtCllQ1m/view?usp=drive_link

๐Ÿ“ Make notes on:

  • What is a vector table?
  • Interrupt and exception handling basics
  • Role of interrupt service routines (ISR)
  • Linking startup code with application code
  • Execution flow after reset

๐Ÿ” Revise concepts carefully

๐Ÿ“Œ Mini Practice:

  • Analyze a vector table structure
  • Identify ISR functions in startup code
  • Trace execution from reset handler to main()


Updated Tasks :

โœ… Task 15: Interrupts Deep Dive (ARM Cortex-M)

๐ŸŽฏ Objective:
Understand how interrupts work internally in ARM Cortex-M microcontrollers.

๐Ÿ“บ To Do:
Watch Session: Interrupts Part-3 โ€“ How interrupts work on ARM Cortex-M

๐Ÿ”— Link: https://drive.google.com/file/d/1X6rTFaPmZ_-Zc9EITdb3aJ5mPLBwhd5r/view?usp=drive_link

๐Ÿ“ Make notes on:

  • Interrupt vector table
  • NVIC (Nested Vectored Interrupt Controller)
  • Interrupt priority levels
  • ISR (Interrupt Service Routine) flow
  • Context switching during interrupts

๐Ÿ” Revise concepts carefully

๐Ÿ“Œ Mini Practice:

  • Write a simple interrupt handler (pseudo or embedded C)
  • Explain interrupt flow step-by-step
  • Identify priority-based interrupt execution


โœ… Task 16: GNU ARM Toolchain & IDE Setup

๐ŸŽฏ Objective:
Learn how embedded C programs are compiled and executed using toolchains.

๐Ÿ“บ To Do:
Watch Session: GNU ARM Toolchain and Eclipse IDE

๐Ÿ”— Link: https://drive.google.com/file/d/1yraW8Wq1cqqjX2nnnWHVDs-_se0m4oGO/view?usp=sharing

๐Ÿ“ Make notes on:

  • What is a toolchain?
  • Compiler, linker, and debugger roles
  • Build process in embedded systems
  • IDE setup and workflow
  • Cross-compilation basics

๐Ÿ” Revise concepts carefully

๐Ÿ“Œ Mini Practice:

  • Draw embedded build flow diagram
  • Explain difference between compiler & linker
  • List steps to compile a C program for ARM


โœ… Task 17: Race Conditions in Embedded Systems

๐ŸŽฏ Objective:
Understand race conditions and how to prevent them.

๐Ÿ“บ To Do:
Watch Session: Race Conditions โ€“ What & How to Avoid

๐Ÿ”— Link: https://drive.google.com/file/d/1ppqhbtUpWK7zsNcvnCyFMJYF0XAVrpmR/view?usp=sharing

๐Ÿ“ Make notes on:

  • What is a race condition?
  • Shared resource problems
  • Critical sections
  • Real-world examples
  • Prevention techniques

๐Ÿ” Revise concepts carefully

๐Ÿ“Œ Mini Practice:

  • Write a scenario showing race condition
  • Explain how data inconsistency occurs
  • Suggest fixes using critical sections


โœ… Task 18: RTOS Basics โ€“ Thread Blocking

๐ŸŽฏ Objective:
Understand thread blocking and efficient CPU usage in RTOS.

๐Ÿ“บ To Do:
Watch Session: RTOS Part-4 โ€“ Efficient Blocking of Threads

๐Ÿ”— Link: https://drive.google.com/file/d/1e9lW_GOMgmS88Ko9Ix8yKOgTVeI3coA_/view?usp=sharing

๐Ÿ“ Make notes on:

  • What is blocking vs busy waiting
  • Thread states (Ready, Running, Blocked)
  • CPU utilization concepts
  • Delay and wait mechanisms

๐Ÿ” Revise concepts carefully

๐Ÿ“Œ Mini Practice:

  • Draw thread state diagram
  • Compare blocking vs polling
  • Explain how blocking improves performance


โœ… Task 19: RTOS Scheduling Concepts

๐ŸŽฏ Objective:
Learn how RTOS schedules tasks efficiently.

๐Ÿ“บ To Do:
Watch Session: RTOS Part-5 โ€“ Preemptive, Priority-based Scheduling

๐Ÿ”— Link: https://drive.google.com/file/d/1di9yqtUXwJr2Fpfnzmj3Ms44cWoJPJS9/view?usp=sharing

๐Ÿ“ Make notes on:

  • What is real-time system?
  • Preemptive vs cooperative scheduling
  • Priority-based scheduling
  • Context switching

๐Ÿ” Revise concepts carefully

๐Ÿ“Œ Mini Practice:

  • Create a task priority example
  • Explain preemption with example
  • Draw scheduling timeline


โœ… Task 20: Thread Synchronization & Communication

๐ŸŽฏ Objective:
Understand synchronization between multiple threads in RTOS.

๐Ÿ“บ To Do:
Watch Session: RTOS Part-6 โ€“ Synchronization & Communication

๐Ÿ”— Link: https://drive.google.com/file/d/14KLH3B5qLMmo979-PyXdVR1XhB9f54z5/view?usp=sharing

๐Ÿ“ Make notes on:

  • Need for synchronization
  • Mutex vs Semaphore
  • Deadlocks basics
  • Inter-task communication methods

๐Ÿ” Revise concepts carefully

๐Ÿ“Œ Mini Practice:

  • Explain mutex vs semaphore
  • Write a simple synchronization scenario
  • Identify possible deadlock situation