[51单片机]

8051 ELL函数库 强势开源!完美适配STC8系列MCU!

[复制链接]
4892|15
手机看帖
扫描二维码
随时随地手机跟帖
泽文i|  楼主 | 2021-3-1 23:28 | 显示全部楼层 |阅读模式
本帖最后由 泽文i 于 2021-4-18 23:15 编辑

8051 ELL函数库简介
ELL是efficient low-layer的缩写,意思是高效低封装,结合了HAL库和LL库的编程思想,既保证了通用性又降低了flash的过度占用。可谓是一举两得,高效、简洁、好用!

开发函数库,最初是为了满足我自己的生产需求,后来经过深思熟虑,我想做一个好用的通用库,所以把它开源出来,分享给广大工程师们。

函数库是基于Keil开发,支持Keil4和Keil5,支持Vscode协同开发,推荐使用EIDE插件。目前函数库主要适配了STC公司的单片机型号,以STC8系列为主。后续计划增加STC12、STC15、STC16系列。

新手如何入门
如果你明白了ELL函数库的架构,那么对你学习本库会有非常大的帮助!函数库采用了一个裸机框架来组织库文件。框架包括两大部分:工程文件和库文件。

工程文件主要存放Keil工程、Vscode文件、用户代码。这里可以根据你的编程习惯进行安排,非常的自由!库文件才是我们的重头戏,它主要分为四个部分:核心文件夹、片内外设库、组件库、设备驱动库。


核心文件夹:存放各种MCU的寄存器头文件、函数库重定义数据类型头文件、函数库常用数据结构头文件片内外设库:存放MCU的片内外设模块,是库的主要构成单元。组件库:配套8051内核开发的好用组件,具有一定的抽象性和封装性,能加速项目的开发,比如TMT时间片任务进程组件。设备驱动库:一些常用的外围芯片、模块,通过统一的驱动框架进行封装,方便开发。


下面是ELL函数库的框架图:

ELL-framework.png

关键的是,我们该如何在工程里面使用函数库呢?我们提供了一个非常便捷的方法!我们拿STC8系列的ELL函数库举例,你只需要调用一个头文件8051_ELL_Lib.h,和配置一个头文件Lib_CFG.h。

通过配置Lib_CFG.h,可以实现对库裁剪和控制,定制适合你工程的函数库。而使用函数库内的API,只需要调用8051_ELL_Lib.h就可以了。
看到这里,如果你对本库产生了兴趣,可以通过下面下载:

gitee仓库 (需要注册账户下载,速度快)
https://gitee.com/zeweni/ELL-8051-LIB
github仓库 (可以直接下载,但速度慢)
https://github.com/zewen-i/8051-ELL-LIB
本库是开源项目,遵循 Apache 许可证 2.0 版本,可免费在商业产品中使用,不需要公布应用程序源码,没有潜在商业风险。

如果本项目对你有所帮助,可以通过下方的赞赏按钮,请我喝一杯咖啡!

QQ技术交流群:1001220381

我会在群里免费答疑和提供技术支持!


ELL-framework.png
Screenshot_2021-03-02-09-11-56-90_8b7aa5be40a89c6a7df806c347da652a.jpg

使用特权

评论回复
guysxpf| | 2021-3-2 15:51 | 显示全部楼层
我去过您页面看过

使用特权

评论回复
zhanyanqiang| | 2021-3-3 22:16 | 显示全部楼层
我顶你~~~~~

使用特权

评论回复
kissdb| | 2021-3-5 09:43 | 显示全部楼层
支持开源

使用特权

评论回复
guysxpf| | 2021-4-5 07:07 | 显示全部楼层
去过您代码仓,宝贝不少

使用特权

评论回复
一路向北lm| | 2021-4-5 10:39 | 显示全部楼层
执行效率如何?

使用特权

评论回复
sdwys| | 2021-4-5 22:14 | 显示全部楼层
函数库的执行效率如果低,意义就不大,8位机不同于32位。

使用特权

评论回复
sdwys| | 2021-4-5 22:46 | 显示全部楼层
大体翻着浏览了一下,作者也是用心做了,值得肯定。但个人感觉STC能漂洋过海的几率不大,最大的开发者还是在国内,你把注释等写成英文,与国际接轨,对国内工程师来说确不实用,给推广人为设置难度,翻文档不麻烦吗?翻你文档的空,自己看看数据手册,程序都写完了。给作者提点建议,中文注释,越详细越好,程序内嵌文档,所见即所得,看程序就大体理解用途,虽说程序文件体积臃肿点,但绝对实用。

使用特权

评论回复
评论
yunyt 2021-4-6 14:35 回复TA
好建议,,,期待 
泽文i|  楼主 | 2021-4-18 21:36 | 显示全部楼层
sdwys 发表于 2021-4-5 22:46
大体翻着浏览了一下,作者也是用心做了,值得肯定。但个人感觉STC能漂洋过海的几率不大,最大的开发者还是 ...

建议采纳了!

使用特权

评论回复
泽文i|  楼主 | 2021-4-18 21:47 | 显示全部楼层

还不错,因为多数是初始化操作,不会影响实际工作。
如果需要对寄存器操作,ELL库已经封装了宏函数,在与编译的时候,直接转换成寄存器操作, 速度没有损失!

使用特权

评论回复
泽文i|  楼主 | 2021-4-18 21:49 | 显示全部楼层
sdwys 发表于 2021-4-5 22:14
函数库的执行效率如果低,意义就不大,8位机不同于32位。

还不错,因为多数是初始化操作,不会影响实际工作。
如果需要对寄存器操作,ELL库已经封装了宏函数,在与编译的时候,直接转换成寄存器操作, 速度没有损失!

比如GPIO操作,从初始化到直接操作,全部是宏函数,会在预编译阶段通过Keil自动转为寄存器然后再编译,没有任何额外的开销!

请放心使用!

使用特权

评论回复
yzq13246068880| | 2021-4-19 09:45 | 显示全部楼层

使用特权

评论回复
xyz549040622| | 2021-4-20 22:26 | 显示全部楼层
支持一下,楼主辛苦了。

使用特权

评论回复
泽文i|  楼主 | 2021-4-28 15:23 | 显示全部楼层
sdwys 发表于 2021-4-5 22:46
大体翻着浏览了一下,作者也是用心做了,值得肯定。但个人感觉STC能漂洋过海的几率不大,最大的开发者还是 ...

已经实现这个要求了,可参照【开源】 8051-ELL库 重大更新 提供对STC硬件仿真的完美支持
https://www.amobbs.com/thread-5749405-1-1.html

使用特权

评论回复
sdwys| | 2021-5-5 22:48 | 显示全部楼层
不错,作者一直在更新,辛苦辛苦。最近忙没具体看,但围绕着可靠性,稳定性,易用性,模块化改进就没错。为了易用性,可以适当牺牲程序运行效率。
新东西刚开始做兼容性不是需要考虑的,那是以后的事,程序写着写着可能以前确定的架构就会出现局限性,新东西,完全可以在架构出现局限性时推到重来。
还有函数的命名,一定要制定一个规则,让人一看就知道调用的是库文件。比如在函数名前加前缀    xx_ 。
还有程序的验证,作为库,这是基础件,是必须编译后,下载到单片机中验证。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

23

帖子

0

粉丝