Initial commit
This commit is contained in:
1 parent
895673b3ac
commit
3259a6cda5
1 file changed
+84
-1
@@ -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
|
||||
Reference in new issue
Block a user