# atomlib **Repository Path**: robin_jr/atomlib ## Basic Information - **Project Name**: atomlib - **Description**: 我写的atomlib库 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 37 - **Created**: 2019-09-02 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 2019/04/28: 添加个代码示例,添加个实例记录: https://blog.csdn.net/yangxiangzhan/article/details/86555117 我写的一个小型库,包括一些命令注册、命令行解析、一个简易的协程调度器和一些硬件平台下的控制台。 其中此文件夹中的文件都与硬件平台无关,但可能与编译平台有关。此库编译版本要在C99以上,或用GCC编译。 我根据不同的硬件平台分别写了不同的控制台, F1 文件夹的是 STM32F1 相关的控制台, F4 则是 F4xx 系列的控制台,但是L1平台的我并没有调通,手上也没有这个板子,所以先放着。 文件说明: avltree.c : 平衡二叉树相关实现代码,在注册命令较多的时候可以启用平衡二叉树进行索引匹配。 getopt.c : 有些编译环境,如 KEIL5 中,没有函数 getopt() ,这是其源码,是我在网上找的。 要是用 gcc 相关的编译平台可以 #include / 找到 getopt() 函数支持。 heaplib.c : 简易版本的内存管理,方便在没有操作系统下进行 malloc/free 操作。同时也提供多线程支持配置。 shell.c 命令行相关,支持 table 键补全,支持上下左右箭头响应,提供参数解析,历史纪录。支持多个交互,如串口,telnet,或者usb,可各自建立交互。 tasklib.c 协程控制器。有需要的话使用协程可以简化代码的编写。我把它模拟成一个操作系统。 ustdio.c 提供 printk 函数,重定义 printf 函数 vim.c 这是我仿照 linux 的 vi 写的一个建议的文本编辑器,依赖 shell ,可以实现简易的文本编辑。 F1/F4/L1: 不同硬件平台的相关串口控制台实现,提供串口在线升级功能。 LittleFS: LittleFS 是一个用于 spi flash 的文件系统,先放这。 appdemo: 一些 demo。