This repository contains comprehensive coursework, projects and implementations from an Embedded Systems diploma program. It covers fundamental to advanced concepts in embedded systems development, microcontroller programming, and system architecture.
-
Basic C Programs: Implementation of fundamental C concepts including:
- Control flow, operators, and basic I/O
- Mathematical operations and algorithm implementation
- Character and string manipulation
-
Arrays & Strings:
- Array manipulation and matrix operations
- String processing and character array handling
- Multi-dimensional array implementations
-
Functions & Recursion:
- Function implementations with various parameter passing methods
- Recursive algorithms including factorial and Fibonacci
- Modular programming examples
-
Structures & Unions:
- Structure definitions and nested structures
- Union implementations
- Complex data type handling
-
Pointers:
- Pointer arithmetic and manipulation
- Memory management
- Advanced pointer concepts including function pointers
-
Bare Metal Programming:
- Platform types implementation
- LED control for STM32F103C6
-
Startup & Linker:
- Custom startup code implementation
- Linker script development
- Memory mapping and sections
-
Data Structures:
- LIFO (Stack) implementation
- FIFO (Queue) implementation
- Linked List for student records
-
Design Patterns:
- State machine implementation
- Collision avoidance system design
- UART and peripheral handling
-
Pressure Detection System:
- Real-time pressure monitoring using state machines
- Interrupt-driven sensor readings with threshold detection
- Multi-level alarm system with prioritized responses
-
Student Information Management:
- Custom FIFO-based database engine
- Memory-efficient dynamic record allocation
- Optimized search and update algorithms
-
Clock System:
- PLL configuration
- Clock tree implementation
- APB/AHB bus configuration
-
Interrupt Handling:
- External interrupt configuration
- NVIC programming
- ISR implementation
-
GPIO Programming:
- Pin configuration and control
- Input/Output operations
-
LCD & Keypad Interfacing:
- LCD driver implementation
- Keypad scanning and detection
- Complete interface examples
-
UART Communication:
- Driver implementation
- Asynchronous communication
- Buffer handling
-
SPI Protocol:
- Master/Slave implementation
- Data transmission protocols
- Multiple device communication
-
I2C Protocol:
- Driver development
- Multi-master support
- Address handling
-
Timer Programming:
- Timer modes configuration
- PWM signal generation
- Input capture implementation
-
ADC Interfacing:
- ADC initialization and configuration
- Multi-channel sampling
- DMA with ADC
-
Processor Modes:
- Handler/Thread mode implementation
- Stack configuration
- Privilege levels
-
Exception Handling:
- SVC implementation
- PendSV handling
- System exceptions
- RTOS Implementation:
- Task creation and scheduling
- Context switching
- Priority handling
- Mutex implementation
- FIFO queue management
-
Development Tools:
- GCC ARM Toolchain
- Make build system
- Eclipse IDE
-
Hardware Platforms:
- STM32F103 Series
- ARM Cortex-M3/M4
- ATmega32
-
Communication Protocols:
- UART
- SPI
- I2C
This project is licensed under the MIT License - see the LICENSE file for details.
For any questions or suggestions, please open an issue in the repository.