找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5236|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

8051 ELL函數(shù)庫(kù)強(qiáng)勢(shì)開(kāi)源!完美適配STC8系列MCU

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:594416 發(fā)表于 2021-3-4 11:40 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
8051 ELL函數(shù)庫(kù)簡(jiǎn)介
ELL是efficient low-layer的縮寫(xiě),意思是高效低封裝,結(jié)合了HAL庫(kù)和LL庫(kù)的編程思想,既保證了通用性又降低了flash的過(guò)度占用?芍^是一舉兩得,高效、簡(jiǎn)潔、好用!

開(kāi)發(fā)函數(shù)庫(kù),最初是為了滿足我自己的生產(chǎn)需求,后來(lái)經(jīng)過(guò)深思熟慮,我想做一個(gè)好用的通用庫(kù),所以把它開(kāi)源出來(lái),分享給廣大工程師們。

函數(shù)庫(kù)是基于Keil開(kāi)發(fā),支持Keil4和Keil5,支持Vscode協(xié)同開(kāi)發(fā),推薦使用EIDE插件。目前函數(shù)庫(kù)主要適配了STC公司的單片機(jī)型號(hào),以STC8系列為主。后續(xù)計(jì)劃增加STC12、STC15、STC16系列。

新手如何入門(mén)
如果你明白了ELL函數(shù)庫(kù)的架構(gòu),那么對(duì)你學(xué)習(xí)本庫(kù)會(huì)有非常大的幫助!函數(shù)庫(kù)采用了一個(gè)裸機(jī)框架來(lái)組織庫(kù)文件?蚣馨▋纱蟛糠郑汗こ涛募蛶(kù)文件。

工程文件主要存放Keil工程、Vscode文件、用戶代碼。這里可以根據(jù)你的編程習(xí)慣進(jìn)行安排,非常的自由!庫(kù)文件才是我們的重頭戲,它主要分為四個(gè)部分:核心文件夾、片內(nèi)外設(shè)庫(kù)、組件庫(kù)、設(shè)備驅(qū)動(dòng)庫(kù)。


C
核心文件夾:存放各種MCU的寄存器頭文件、函數(shù)庫(kù)重定義數(shù)據(jù)類型頭文件、函數(shù)庫(kù)常用數(shù)據(jù)結(jié)構(gòu)頭文件片內(nèi)外設(shè)庫(kù):存放MCU的片內(nèi)外設(shè)模塊,是庫(kù)的主要構(gòu)成單元。組件庫(kù):配套8051內(nèi)核開(kāi)發(fā)的好用組件,具有一定的抽象性和封裝性,能加速項(xiàng)目的開(kāi)發(fā),比如TMT時(shí)間片任務(wù)進(jìn)程組件。設(shè)備驅(qū)動(dòng)庫(kù):一些常用的外圍芯片、模塊,通過(guò)統(tǒng)一的驅(qū)動(dòng)框架進(jìn)行封裝,方便開(kāi)發(fā)。


下面是ELL函數(shù)庫(kù)的框架圖:



關(guān)鍵的是,我們?cè)撊绾卧诠こ汤锩媸褂煤瘮?shù)庫(kù)呢?我們提供了一個(gè)非常便捷的方法!我們拿STC8系列的ELL函數(shù)庫(kù)舉例,你只需要調(diào)用一個(gè)頭文件8051_ELL_Lib.h,和配置一個(gè)頭文件Lib_CFG.h。

通過(guò)配置Lib_CFG.h,可以實(shí)現(xiàn)對(duì)庫(kù)裁剪和控制,定制適合你工程的函數(shù)庫(kù)。而使用函數(shù)庫(kù)內(nèi)的API,只需要調(diào)用8051_ELL_Lib.h就可以了。
看到這里,如果你對(duì)本庫(kù)產(chǎn)生了興趣,可以通過(guò)下面下載:



本庫(kù)是開(kāi)源項(xiàng)目,遵循 Apache 許可證 2.0 版本,可免費(fèi)在商業(yè)產(chǎn)品中使用,不需要公布應(yīng)用程序源碼,沒(méi)有潛在商業(yè)風(fēng)險(xiǎn)。


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏16 分享淘帖 頂2 踩
回復(fù)

使用道具 舉報(bào)

來(lái)自 2#
ID:155507 發(fā)表于 2021-6-26 12:55 | 只看該作者
更新帖

更新一:

增加8051-ELL官網(wǎng)(文檔中心)
后續(xù)會(huì)發(fā)布大量關(guān)于ELL庫(kù)的實(shí)驗(yàn)、代碼案例和產(chǎn)品應(yīng)用。

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

更新二:


增加8051-ELL API手冊(cè)中心。
可以查找 庫(kù)的API、結(jié)構(gòu)體、宏等的詳細(xì)注釋。

https://zewen-i.github.io/8051-ELL-API/
(網(wǎng)站部署在GitHub上,訪問(wèn)慢的話加群100-1220-381下載。)



更新三:

全新的gitee倉(cāng)庫(kù)簡(jiǎn)介,提供官網(wǎng)和API手冊(cè)的地址入口。

建議遇到問(wèn)題,在gitee倉(cāng)庫(kù)提交issue。


更新四:

增加STC8全系列型號(hào)的啟動(dòng)文件。

提供對(duì)STC8系列的硬件仿真支持、中斷號(hào)超出支持。

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


更新五:

在ELL庫(kù)內(nèi)部代碼上添加中文注釋,采用UTF-8編碼。

可以在Keil和Vscode間無(wú)縫切換,無(wú)需考慮編碼問(wèn)題。
兼容GB2312字符編碼。

更新六:


對(duì)每一個(gè)外設(shè)提供模塊化宏開(kāi)關(guān),可以進(jìn)行任意裁剪。

為后面支持SDCC做好準(zhǔn)備。

先在gitee更新,github是備份倉(cāng)庫(kù)。
官網(wǎng)是部署在github的

還有RTOS,也快出來(lái)了。專門(mén)為51內(nèi)核設(shè)計(jì)

暫時(shí)命名AntOS , 非搶占式輕量級(jí)RTOS,極簡(jiǎn)內(nèi)核,靜態(tài)內(nèi)存分配。因?yàn)?1的RAM有限(SP尋址有限),且不支持重入。所以為了最大程度發(fā)揮51的性能,選擇合作式的調(diào)度。

Ant 是螞蟻的意思,選擇這個(gè)作為RTOS的名稱,是希望可以像螞蟻一樣能夠舉起比自身重很多倍的東西,。

同時(shí)螞蟻是群居社會(huì),而且是一種聯(lián)系緊密且通訊高效的社會(huì)體系,這也將被實(shí)當(dāng)借鑒進(jìn)RTOS的設(shè)計(jì),向分布式的思想靠攏(內(nèi)核+組件服務(wù))。

AntOS 希望可以成為一個(gè)現(xiàn)代化的,分布式的,能夠面向物聯(lián)網(wǎng)的輕量級(jí)RTOS,為51MCU帶來(lái)更多的可能性,能在萬(wàn)物互聯(lián)的時(shí)代,步步緊跟。

{
        PS: 搶占式 和時(shí)間片調(diào)度我都實(shí)現(xiàn)了,包括可重入也找到了確切的解決辦法,但是效率不高,有些牽強(qiáng)的意味,
                所以我決定,不能盲目跟風(fēng)隨大流,不要為了RTOS而去RTOS,而是沉下心來(lái),切合實(shí)際去設(shè)計(jì)。
                雖然搶占式是更現(xiàn)代化的RTOS任務(wù)調(diào)度機(jī)制,但是對(duì)于51來(lái)說(shuō),至少目前的51,性能上還是欠缺了一些。
                但是這里的性能是要加引號(hào)的,所以我們?cè)O(shè)計(jì)RTOS的目的,是要把51的優(yōu)點(diǎn)無(wú)限放大,缺點(diǎn)無(wú)限縮。
                能做到這一點(diǎn),樓主覺(jué)得這就是一個(gè)成功的RTOS!
}

目前暫時(shí)把精力放在維護(hù)ELL庫(kù)上面,等到徹底成熟 穩(wěn)定以后(還要靠大家的多多幫助!多提意見(jiàn)),再投入精力到RTOS上面

回復(fù)

使用道具 舉報(bào)

板凳
ID:336367 發(fā)表于 2021-3-4 16:03 | 只看該作者
這,你還沒(méi)完成呢!
回復(fù)

使用道具 舉報(bào)

地板
ID:594416 發(fā)表于 2021-3-4 19:51 | 只看該作者
點(diǎn)擊小子 發(fā)表于 2021-3-4 16:03
這,你還沒(méi)完成呢!

哈哈哈,精力有限,慢慢來(lái),哈哈
回復(fù)

使用道具 舉報(bào)

5#
ID:945567 發(fā)表于 2021-6-27 16:07 | 只看該作者
tql!!!!
回復(fù)

使用道具 舉報(bào)

6#
ID:731155 發(fā)表于 2021-6-28 10:04 | 只看該作者
可以有,非常支持,國(guó)人就是缺少這種開(kāi)源精神
回復(fù)

使用道具 舉報(bào)

7#
ID:276663 發(fā)表于 2021-6-28 10:45 | 只看該作者
簡(jiǎn)單看了一下src GPIO.C并不支持端口模式配置啊,只是中斷腳的配置,端口配置還是寄存器?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表