# EntTypeFramework **Repository Path**: c_zn/ent-type-framework ## Basic Information - **Project Name**: EntTypeFramework - **Description**: 事件驱动型框架程序。实现协程任务调度、事件驱动、设备框架、软定时器程序框架。 - **Primary Language**: C - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 5 - **Created**: 2024-05-30 - **Last Updated**: 2024-05-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 1 简介 ETF(Event Type Framework)是一款基于事件驱动,采用协程调度模式的程序框架。非RTOS类系统,仍属于传统的前后台系统运行方式。框架代码大量使用结构体实现对象的概念,使用链表管理组织对象。基于此,为方便框架移植和规范程序架构还扩展实现了设备管理框架、软定时器框架。为方便调试,编写了控制台、LOG控制台打印等功能程序,作为组件可选择添加。程序全部使用C语言编写,尽量做到简单易懂、架构清晰和良好的可以移植性。适用于资源较少MCU系统中应用。 个人编写此框架目的与框架程序特点: - 便于规范程序的组织架构; - 便于移植,方便实现底层驱动与上层软件逻辑代码的隔离; - 便于调试,使用链表管理组织对象,通过控制台可以很方便的查看程序运行状态; - 参考使用过的一些开源软件上的程序设计思路做阶段性的学习总结; --- # 2 声明 > contiki:Copyright (c) 2005, Swedish Institute of Computer Science All rights reserved. > > rtthread:Copyright (c) 2006-2018, RT-Thread Development Team SPDX-License-Identifier: Apache-2.0 ETF框架程序是本人阶段性学习的总结,参考了一些开源程序设计思路。特在此对所参考的开源程序源码、设计思路或文献做出说明。 - 设备框架代码:参考rtthread设计思路、部分代码整理后直接引用; - 对象概念与组织管理方式:参考rtthread设计思路、部分代码修改整理后引用; - 协程调度框架程序:参考contiki、部分代码整理后直接引用; - log打印:参考rtthread-ulog输出格式与分级管理方式; - 控制台:参考freertos-cli命令添加管理方式; > ***注:这套框架代码并不一定会在网络上持续更新与维护,目前只是个人工作学习中的做得一点总结积累,今后也会在工作项目中尝试使用并完善。如果你得到了此代码,在没有完全熟悉掌握代码编写逻辑的情况下不建议直接用于产品开发中。*** --- # 3 其他 此框架程序非RTOS,没有抢占和优先级概念,是较为简单的轮询方式,所以需要实时处理的任务依靠于中断,在不可以通过中断处理的时候,需要编程人员考虑并保证应用代码被轮询的及时性。 Doc目录中包含的架构程序说明。 --- # 3 版本 ## ETF v1.0.0_Alpha Change Log Change log since v0.0.0 > ***注:仅简单测试,并未完全验证*** - 实现协程调度框架程序; - 实现事件驱动框架程序; - 实现设备管理框架程序; - 实现软定时器管理框架程序; - 实现控制台程序; - 实现log控制台打印程序;