找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4023|回复: 6
打印 上一主题 下一主题
收起左侧

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

  [复制链接]
跳转到指定楼层
楼主
ID:594416 发表于 2021-3-4 11:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
8051 ELL函数库简介
ELL是efficient low-layer的缩写,意思是高效低封装,结合了HAL库和LL库的编程思想,既保证了通用性又降低了flash的过度占用。可谓是一举两得,高效、简洁、好用!

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

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

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

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


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


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



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

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



本库是开源项目,遵循 Apache 许可证 2.0 版本,可免费在商业产品中使用,不需要公布应用程序源码,没有潜在商业风险。


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏16 分享淘帖 顶2 踩
回复

使用道具 举报

来自 2#
ID:155507 发表于 2021-6-26 12:55 | 只看该作者
更新帖

更新一:

增加8051-ELL官网(文档中心)
后续会发布大量关于ELL库的实验、代码案例和产品应用。

https://zewen-i.github.io/8051-ELL-WEB/#/

更新二:


增加8051-ELL API手册中心。
可以查找 库的API、结构体、宏等的详细注释。

https://zewen-i.github.io/8051-ELL-API/
(网站部署在GitHub上,访问慢的话加群100-1220-381下载。)



更新三:

全新的gitee仓库简介,提供官网和API手册的地址入口。

建议遇到问题,在gitee仓库提交issue。


更新四:

增加STC8全系列型号的启动文件。

提供对STC8系列的硬件仿真支持、中断号超出支持。

硬件仿真演示视频:
https://www.bilibili.com/video/BV17V411J7rJ?share_source=copy_web


更新五:

在ELL库内部代码上添加中文注释,采用UTF-8编码。

可以在Keil和Vscode间无缝切换,无需考虑编码问题。
兼容GB2312字符编码。

更新六:


对每一个外设提供模块化宏开关,可以进行任意裁剪。

为后面支持SDCC做好准备。

先在gitee更新,github是备份仓库。
官网是部署在github的

还有RTOS,也快出来了。专门为51内核设计

暂时命名AntOS , 非抢占式轻量级RTOS,极简内核,静态内存分配。因为51的RAM有限(SP寻址有限),且不支持重入。所以为了最大程度发挥51的性能,选择合作式的调度。

Ant 是蚂蚁的意思,选择这个作为RTOS的名称,是希望可以像蚂蚁一样能够举起比自身重很多倍的东西,。

同时蚂蚁是群居社会,而且是一种联系紧密且通讯高效的社会体系,这也将被实当借鉴进RTOS的设计,向分布式的思想靠拢(内核+组件服务)。

AntOS 希望可以成为一个现代化的,分布式的,能够面向物联网的轻量级RTOS,为51MCU带来更多的可能性,能在万物互联的时代,步步紧跟。

{
        PS: 抢占式 和时间片调度我都实现了,包括可重入也找到了确切的解决办法,但是效率不高,有些牵强的意味,
                所以我决定,不能盲目跟风随大流,不要为了RTOS而去RTOS,而是沉下心来,切合实际去设计。
                虽然抢占式是更现代化的RTOS任务调度机制,但是对于51来说,至少目前的51,性能上还是欠缺了一些。
                但是这里的性能是要加引号的,所以我们设计RTOS的目的,是要把51的优点无限放大,缺点无限缩小!
                能做到这一点,楼主觉得这就是一个成功的RTOS!
}

目前暂时把精力放在维护ELL库上面,等到彻底成熟 稳定以后(还要靠大家的多多帮助!多提意见),再投入精力到RTOS上面

回复

使用道具 举报

板凳
ID:336367 发表于 2021-3-4 16:03 | 只看该作者
这,你还没完成呢!
回复

使用道具 举报

地板
ID:594416 发表于 2021-3-4 19:51 | 只看该作者
点击小子 发表于 2021-3-4 16:03
这,你还没完成呢!

哈哈哈,精力有限,慢慢来,哈哈
回复

使用道具 举报

5#
ID:945567 发表于 2021-6-27 16:07 | 只看该作者
tql!!!!
回复

使用道具 举报

6#
ID:731155 发表于 2021-6-28 10:04 | 只看该作者
可以有,非常支持,国人就是缺少这种开源精神
回复

使用道具 举报

7#
ID:276663 发表于 2021-6-28 10:45 | 只看该作者
简单看了一下src GPIO.C并不支持端口模式配置啊,只是中断脚的配置,端口配置还是寄存器?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表