Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Embedded-C-Cpp-Learning

面向嵌入式软件开发的 C/C++ 基础与工程化实践仓库。

Overview

内容从安全的数据处理接口出发,逐步覆盖多文件组织、C++ 封装、状态机、命令解析、环形缓冲区、轻量任务调度与可测试的软件边界。

Platform & Technology

Field Value
Language C11、C++11
Platform Windows 或 Linux 主机;核心逻辑不依赖特定 MCU
Toolchain GCC / G++,-Wall -Wextra -Werror -pedantic
Architecture 多文件模块、状态机、命令框架、环形缓冲区与轻量任务管理
Verification 主机端可执行程序与 assert 测试

Architecture

Command Framework

命令处理框架

字节流先进入固定容量环形缓冲区,再由命令引擎在主循环语境中完成解析和设备状态更新。中断或输入层只负责提交数据,避免把完整命令处理放进时间敏感路径。

Task Manager

轻量任务状态管理

任务表保存周期、运行状态、回调与上下文;tick 只推进确定性的状态。固件控制台示例把命令框架与任务管理组合起来,展示模块复用和集成测试。

Key Features

Featured Examples

示例 源码入口 测试入口 展示重点
Command Framework command.c test_command_framework.c 固定容量输入、命令解析、错误边界与设备状态更新
Task Manager task_manager.c test_task_manager.c 周期任务、运行状态、故障与复位流程
Firmware Console firmware_console.c test_firmware_console.c 命令框架与任务管理的组合、回调边界与集成测试

Capability Areas

方向 代表实现 工程关注点
C 基础 数组求和、字符串与定宽数据 长度传递、溢出与输入边界
资源管理 动态缓冲区、受检文件读写 生命周期、错误返回、释放路径
模块化 多文件计数器 声明/实现分离、内部状态封装
C++ 封装 Student 类实践 构造约束、成员状态与接口设计
状态机 按键事件模型 输入事件与状态转换解耦
嵌入式软件结构 命令框架、任务管理、固件控制台 固定容量、回调、组合与可测试性

Project Structure

projects/
  01_C语言基础能力/          数组与字符串
  02_C语言核心能力/          内存与文件 I/O
  03_程序设计能力/           多文件模块
  04_C++程序设计/            类与封装
  05_嵌入式软件思想/         状态机
  06_综合软件实践/           命令、任务与固件控制台
docs/                       工程方法、构建与调试记录
assets/images/architecture/ 自绘架构图

Directory Navigation

想查看的内容 入口
C/C++ 基础与模块化源码 projects/01_C语言基础能力 → projects/04_C++程序设计
嵌入式软件结构源码 projects/05_嵌入式软件思想 与 projects/06_综合软件实践
主机端测试 Command Framework tests · Task Manager tests · Firmware Console tests
构建、设计与调试文档 docs

Documentation

Quick Start

以下命令在 Windows PowerShell 中从仓库根目录执行,只验证可移植的主机端软件逻辑。完整环境说明见编译环境说明。

New-Item -ItemType Directory -Path .build -Force | Out-Null

# Command Framework
gcc -std=c11 -Wall -Wextra -Werror -pedantic `
  projects/06_综合软件实践/嵌入式命令处理框架/practice/src/ring_buffer.c `
  projects/06_综合软件实践/嵌入式命令处理框架/practice/src/device.c `
  projects/06_综合软件实践/嵌入式命令处理框架/practice/src/command.c `
  projects/06_综合软件实践/嵌入式命令处理框架/tests/test_command_framework.c `
  -I projects/06_综合软件实践/嵌入式命令处理框架/practice/include `
  -o .build/command-framework-test.exe
./.build/command-framework-test.exe

# Task Manager
gcc -std=c11 -Wall -Wextra -Werror -pedantic `
  projects/06_综合软件实践/轻量任务状态管理/practice/src/task_manager.c `
  projects/06_综合软件实践/轻量任务状态管理/tests/test_task_manager.c `
  -I projects/06_综合软件实践/轻量任务状态管理/practice/include `
  -o .build/task-manager-test.exe
./.build/task-manager-test.exe

这些命令不代表 MCU 交叉编译、Keil 构建或开发板运行验证。

Reading Guide

Verification

Host Test

Command Framework、Task Manager 和 Firmware Console 的主机端测试当前均通过。

Build Verification

现有主机端模块已使用 GCC/G++ 16.1.0 与严格警告选项构建通过。

Hardware Validation

Not performed。当前结果不包含 MCU 交叉编译、Keil 构建或开发板运行验证。

Runtime Evidence

现有运行证据仅限主机端可执行程序与 assert 测试,不代表 MCU 或板端运行结果。

License Boundary

根目录 MIT License 适用于仓库维护者编写的代码、文档与 SVG 图示。外部工具链、芯片资料、课程材料及未随仓库分发的第三方实现不因被提及而纳入该许可。

About

Embedded C/C++ programming, modular design and software practice.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages