Skip to content

beyound3d/EmbeddedSys

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 

Repository files navigation

Embedded System Software

πŸ“¦ Overview

This repository contains software components, configuration profiles, and tools for developing and deploying embedded system applications. It supports multiple target architectures (e.g., ARM Cortex-M, RISC-V) and integrates with real-time operating systems (RTOS), bare-metal environments, or custom hardware abstraction layers (HALs).


πŸ› οΈ Features

  • βœ… Modular architecture (Drivers, Middleware, RTOS Abstraction)
  • βœ… Support for multiple MCUs and development boards
  • βœ… Real-time capabilities with optional RTOS integration (FreeRTOS, Zephyr, etc.)
  • βœ… HAL/LL driver layer abstraction
  • βœ… Firmware configuration and device profiles
  • βœ… Peripheral support (I2C, SPI, UART, ADC, PWM, etc.)
  • βœ… Build system compatibility: Make, CMake, and PlatformIO
  • βœ… Unit testing and simulation stubs for host-side development

πŸ“ Directory Structure

β”œβ”€β”€ config/ # Board-specific configurations and profiles
β”œβ”€β”€ drivers/ # Low-level peripheral drivers
β”œβ”€β”€ middleware/ # Protocol stacks or libraries (e.g., MQTT, Modbus)
β”œβ”€β”€ rtos/ # RTOS abstraction layer
β”œβ”€β”€ utils/ # Logging, debugging, timebase, etc.
β”œβ”€β”€ examples/ # Sample applications and test cases
β”œβ”€β”€ docs/ # Documentation and design notes
β”œβ”€β”€ tests/ # Unit tests and host simulation
β”œβ”€β”€ CMakeLists.txt # Build configuration
└── README.md # Project overview (this file)
## βš™οΈ Features

- πŸ”Œ **Modular Drivers** for peripherals like GPIO, UART, I2C, SPI, ADC, PWM
- πŸ”„ **Middleware Support** (e.g., MQTT, Modbus, BLE, LoRa)
- ⏱️ **RTOS Ready** with abstraction for FreeRTOS, Zephyr, or custom kernels
- 🧩 **Configuration Profiles** for easy board and MCU switching
- πŸ§ͺ **Unit Tests & Host Simulation** with stub/mock layers
- πŸ“– **In-Repo Documentation** to support architecture understanding and onboarding
- πŸ› οΈ **Cross-platform Build System** via `CMake` (can support Make or PlatformIO)

πŸš€ Getting Started

Prerequisites

  • GCC toolchain (e.g., arm-none-eabi-gcc)
  • Python 3.x (for scripts and utilities)
  • CMake or Make
  • Optional: PlatformIO, Docker, QEMU for simulation

Build Example (CMake)

mkdir build
cd build
cmake

Flash to Device

make flash

Make sure your device is connected and debugger (e.g., ST-Link, J-Link) is configured properly.

πŸ§ͺ Testing

Unit tests can be run on host using stubs/mocks. Navigate to the tests/ directory:

cd tests
make test

πŸ“š Documentation

Documentation is available in the docs/ folder. Key topics include:

  • System Architecture
  • Driver & HAL Layer Design
  • RTOS Integration
  • Debugging & Logging Setup
  • Deployment Guide

πŸ–₯️ Supported Boards / MCUs

  • STM32F103 (Blue Pill)
  • STM32F4 Discovery
  • ESP32 DevKit
  • NXP LPC1768
  • βœ… Add your own via /config/

πŸ”§ Configuration Profiles

Configuration profiles are defined in the config/ directory. These include:

  • Clock & PLL settings
  • Peripheral enable/disable
  • Linker script and memory layout
  • Startup sequences

Use config/profile_selector.h to switch between board targets.

πŸ“„ License

This project is licensed under the MIT License.

🀝 Contributing

Contributions are welcome! Please:

  • Fork the repo
  • Create a feature branch
  • Submit a pull request

See CONTRIBUTING.md for full guidelines.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published