Library Overview and Project Entry Point
Developed by Gestell Company - Professional Embedded Solutions
- Introduction
- Why This Library
- Key Features
- Typical Use Cases
- Project Structure
- Quick Start
- Related Documentation
- Support & Contact
- Document Control
This repository provides a reusable Circular FIFO Library written in C for embedded systems.
The library is intended to be:
- Simple for students to understand
- Structured enough for real embedded projects
- Safe for static-memory environments
- Easy to test and integrate
This project is useful as both:
- A ready-to-use FIFO module
- A small reference project for learning clean embedded library design
Many FIFO examples available online are too small, too informal, or too weak in validation to be reused directly in an embedded project.
This library was built to provide a better example:
- Clear module separation
- Public and private header split
- Static memory only
- Generic element storage
- Explicit status codes
- Unit tests using
Unity
For a student or junior engineer, this project shows how a small embedded library can be packaged professionally instead of being written as a single experimental file.
- Generic FIFO using user-provided buffer
- No
mallocand no hidden memory allocation - Support for
Rejectmode andOverwritemode - Optional lock and unlock hooks
- Clean API with explicit status return values
Make-based build flowUnity-based unit test flow
This library can be used in:
- UART receive buffering
- Event queues
- Sensor data pipelines
- Producer / consumer data exchange
- Logging recent samples in fixed memory
Any embedded module that needs ordered storage inside a bounded memory area can benefit from this library.
Circular_FIFO_Lib/
├── Common/
├── Library/CircularFIFO/
├── Test/UnitTests/
├── Documentation/
│ ├── Circular_FIFO_Lib_ArchDesign.md
│ ├── Library_UML_Diagrams.md
│ └── User_Manual.md
├── Makefile
└── README.md
Important source files:
- Library/CircularFIFO/CircularFIFO_Interface.h
- Library/CircularFIFO/CircularFIFO_Program.c
- Library/CircularFIFO/CircularFIFO_Config.h
- Test/UnitTests/Test/Library/CircularFIFO/Test_CircularFIFO.c
Build and run unit tests:
make testClean generated build output:
make cleanSimple initialization example:
static CircularFIFO_t AppFifo;
static uint16_t AppBuffer[8];
Lib_CircularFIFO_Init(&AppFifo,
AppBuffer,
sizeof(uint16_t),
8U,
CircularFIFO_Mode_Reject);This README is supported by the following project documents:
| Document | Description | Status |
|---|---|---|
| User_Manual.md | Practical guide for integrating and using the library APIs | ✅ Available |
| Library_UML_Diagrams.md | Design diagrams and internal behavior explanation | ✅ Available |
| Circular_FIFO_Lib_ArchDesign.md | Architecture decisions, constraints, and API design rationale | ✅ Available |
💡 Note: The
READMEis intentionally lightweight. Detailed usage belongs in the User Manual, while internal behavior and diagrams belong in the design document.
Documention Information:
- Documention Name: Circular FIFO Library README
- Documention Reference: README-CFL-001
- Development Company: Gestell - Professional Embedded Solutions
Company Email: info.gestell@gmail.com
Management Email: manager.gestell@gmail.com
Project Developer: Hesham Ahmed
Developer Email: Hisham4Ahmed@gmail.com
LinkedIn Company Page: https://www.linkedin.com/company/gestell-company
| Attribute | Value |
|---|---|
| Document Type | README |
| Document ID | README-CFL-001 |
| Document Status | Ready for Use |
| Document Version | 1.2 |
| Created Date | 2026-04-13 |
| Last Updated | 2026-04-13 |
| Prepared By | Hesham Ahmed |
| Reviewed By | Gestell Engineering Team |
| Approved By | Gestell Management |
| Version | Date | Author | Description of Change |
|---|---|---|---|
| 1.0 | 2026-04-13 | Hesham Ahmed | Initial README creation |
| 1.1 | 2026-04-13 | Hesham Ahmed | Reformatted to match project documentation template |
| 1.2 | 2026-04-13 | Hesham Ahmed | Reviewed references, aligned project structure, and added Gestell contact details |
Built by Gestell Team
Professional Embedded Solutions
Copyright © 2026 Gestell Company - All Rights Reserved