# FastUtils **Repository Path**: Actor_V/fast_utils ## Basic Information - **Project Name**: FastUtils - **Description**: 适用于keil mdk的单片机裸机开发工具包,精简小巧,使用简单;包含了合作式调度器、定时器、日志、自动初始化工具等组件 - **Primary Language**: C - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 1 - **Created**: 2023-02-01 - **Last Updated**: 2025-11-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FastUtils #### 介绍 适用于keil mdk的单片机裸机工具包,当前包含了以下组件: 1. 合作式调度器 2. 软件定时器 3. 自动初始化工具 4. 简易日志系统 ### 功能 1. initial模块:在main启动前初始化底层设备 2. clock模块:系统时钟设置,需要在这个文件中初始化设备时钟 3. task模块:合作式调度器,注册的函数将按照设定顺序依次执行 4. timer模块:定时器,依赖于task 5. key模块:按键检测,每个按键可以注册多个回调 6. value模块:变量管理,协调多个模块间的变量交叉使用 7. log模块:提供基本日志功能 #### 资源占用 - Systick定时器,溢出时间需要设置为1毫秒,也可以自定义 - main函数已经在task.c中声明 #### 适用 - cortex-m 内核系列单片机,其他单片机自测,而且目前仅适配keil mdk环境 #### 使用 - 嵌入到keil工程后需要做两件事来完成移植 1. 通过utils_config.h和clock.c设置1ms定时器中断 2. 如果需要日志系统,则需要在utils_config.h中的指定位置引入输出接口的头文件并替换UTILS_PRINT宏 - 参考Example中的示例 #### 注意 - 自动初始化工具的代码参考了rtthread的组件初始化系统 - 日志系统也是来自rtthread的自带log工具的简化版 - 由于是裸机操作,在软件定时器和调度器中慎用死等延时,这样做有极大的概率导两者工作不稳定 - 调度器中提供了suspend方法来挂起一个任务一段时间,这个方法只建议在任务函数的末尾调用,因为其工作原理与定时器类似,并不会主动切换上下文