Initial commit

This commit is contained in:
deeaitch committed 2026-06-17 21:40:29 -04:00
1 parent 895673b3ac
commit 3259a6cda5
1 file changed
+84 -1
+84 -1
View File
@@ -1,3 +1,86 @@
# Embedded-C-Fundamentals
# Embedded C Fundamentals
Fundamental C concepts, memory model, pointers, data structures, and embedded programming examples.
## Overview
This repository contains notes, explanations, and runnable examples covering fundamental concepts of the C programming language commonly encountered in embedded software development.
The goal is not to teach C from scratch.
Instead, the focus is on understanding how things work under the hood and revisiting language features that are often hidden behind modern C++ abstractions.
Topics are explored through small, self-contained examples that can be compiled, executed, modified, and studied.
## Topics
Planned topics include:
* Memory layout
* Variables and storage duration
* Pointers
* Arrays
* Strings
* Structures
* Dynamic memory allocation
* Function pointers
* Linked lists
* Bit manipulation
* Volatile
* Const correctness
* Undefined behaviour
* Memory-mapped I/O concepts
* Common embedded programming patterns
* Common interview questions
## Repository Structure
```text
examples/
notes/
diagrams/
interview_questions/
```
The structure may evolve as additional material is added.
## Philosophy
Understanding C is not about memorizing syntax.
It is about understanding:
* where data is stored
* who owns memory
* how pointers behave
* what the compiler is allowed to do
* where undefined behaviour begins
Every topic should be supported by practical examples whenever possible.
## Intended Audience
This repository may be useful for:
* Embedded software engineers
* Firmware developers
* C++ developers refreshing C fundamentals
* Engineers preparing for technical interviews
* Students interested in low-level programming
## Building Examples
Examples are intended to be compiled using standard toolchains available on Linux systems.
Example:
```bash
gcc example.c -o example
./example
```
Individual examples may provide additional build instructions.
## License
MIT License