Skip to content

MrLogeshrt/Embedded-C-Programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bare Metal Embedded C Programming

A collection of Embedded C programming exercises completed during my Bare Metal Embedded Programming Training. These programs were assigned as daily practice and homework to strengthen my understanding of C programming concepts required for developing firmware on ARM Cortex-M based microcontrollers.


About the Repository

This repository contains my solutions to the programming exercises assigned during my Bare Metal Embedded Systems training.

The objective of these exercises was to build a strong foundation in the C programming language before moving to register-level programming and peripheral driver development for STM32 microcontrollers.

Every program in this repository was written independently as part of my daily learning process and demonstrates fundamental programming concepts used in Embedded Systems development.


Learning Objectives

  • Strengthen Embedded C programming skills
  • Understand data types and memory representation
  • Practice arithmetic, logical, and bitwise operations
  • Develop problem-solving skills
  • Learn array and string manipulation
  • Understand modular programming using functions
  • Practice structures and user-defined data types
  • Build a solid foundation for Bare Metal STM32 Programming

Repository Structure

Bare-Metal-C-Programming
│
├── README.md
│
├── Day-01
│   ├── Day_1_Q_1.c
│   ├── Day_1_Q_2.c
│   ├── ...
│
├── Day-02
│   ├── Day_2_Q_1.c
│   ├── ...
│
├── Day-03
│
├── Day-04
│
└── Day-07

Topics Covered

Day 1 – C Fundamentals

  • Size of Data Types
  • Integer Range Validation
  • Integer Overflow
  • Temperature Conversion
  • Arithmetic Operations
  • Integer vs Floating-Point Division
  • ASCII Representation
  • Array Basics
  • Counter Program
  • Unsigned Character Overflow
  • Variable Declaration
  • Arithmetic Overflow

Day 2 – Operators & Decision Making

  • Arithmetic Operators
  • Relational Operators
  • Logical Operators
  • Compound Assignment Operators
  • Bitwise Operators
  • Bit Manipulation
  • Even/Odd Detection
  • Range Checking
  • Largest of Three Numbers
  • Leap Year
  • Prime Number
  • Reverse Number

Day 3 – Arrays & Strings

  • Array Traversal
  • Array Input
  • Array Sum
  • Character Arrays
  • sizeof() Operator
  • Minimum Element
  • Array Copy
  • Array Reverse
  • String Length
  • Fixed Buffer Validation

Day 4 – Functions & Problem Solving

  • User-defined Functions
  • Function Parameters
  • Return Values
  • Nested Function Calls
  • Static Variables
  • Modular Programming
  • Array Processing
  • Sorting Algorithms
  • Duplicate Removal
  • Palindrome Checking
  • Character Frequency
  • String Processing

Day 7 – Structures

  • Structure Basics
  • Employee Record
  • Student Record
  • Array of Structures
  • Passing Structures to Functions
  • Call by Reference
  • Nested Structures
  • Structure Sorting
  • Record Management

Skills Demonstrated

  • Embedded C Programming
  • Problem Solving
  • Memory Management
  • Bit Manipulation
  • Modular Programming
  • Arrays & Strings
  • Functions
  • Structures
  • Code Organization
  • Programming Logic

Development Environment

Language

  • C (C99)

Compiler

  • GCC

IDE

  • Visual Studio Code

Operating System

  • Windows

Future Scope

The knowledge gained from these exercises will be applied in upcoming repositories involving:

  • STM32 Bare Metal Programming
  • ARM Cortex-M Architecture
  • Register-Level Programming
  • GPIO Driver Development
  • UART Driver
  • SPI Driver
  • I2C Driver
  • Timer Programming
  • Interrupt Handling
  • Peripheral Driver Development

Acknowledgement

These exercises were assigned during my Bare Metal Embedded Programming Training as daily practice and homework. Solving these problems independently helped me strengthen my understanding of C programming concepts that form the foundation of Embedded Systems development.


Author

Logeshwaran R

Electronics and Communication Engineering

Aspiring Embedded Systems Engineer


⭐ If you find this repository helpful, feel free to explore the programs and share your feedback.

About

Embedded C programming exercises completed during my Bare Metal Embedded Programming Training.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages