Skip to content

Gestell-Solution/Embedded-FIFO-Pro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gestell Company Logo



Circular FIFO Library

Library Overview and Project Entry Point

Developed by Gestell Company - Professional Embedded Solutions


Status Category Version License Type


📋 Table of Contents


📖 Introduction

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

🎯 Why This Library

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.


✨ Key Features

  • Generic FIFO using user-provided buffer
  • No malloc and no hidden memory allocation
  • Support for Reject mode and Overwrite mode
  • Optional lock and unlock hooks
  • Clean API with explicit status return values
  • Make-based build flow
  • Unity-based unit test flow

🧠 Typical Use Cases

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.


🗂️ Project Structure

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:


🚀 Quick Start

Build and run unit tests:

make test

Clean generated build output:

make clean

Simple initialization example:

static CircularFIFO_t AppFifo;
static uint16_t AppBuffer[8];

Lib_CircularFIFO_Init(&AppFifo,
                      AppBuffer,
                      sizeof(uint16_t),
                      8U,
                      CircularFIFO_Mode_Reject);

📂 Related Documentation

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 README is intentionally lightweight. Detailed usage belongs in the User Manual, while internal behavior and diagrams belong in the design document.


📞 Support & Contact

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


📄 Document Control

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

Revision History

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

About

A robust, production-ready Generic Circular FIFO Library written in Embedded C. Features configurable Overwrite/Reject modes, optional Thread-Safety hooks, and strict runtime validation. Designed for static memory environments with full UML documentation and architectural design.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages