標題: 8051 ELL函數庫強勢開源!完美適配STC8系列MCU [打印本頁]
作者: 澤文i 時間: 2021-3-4 11:40
標題: 8051 ELL函數庫強勢開源!完美適配STC8系列MCU
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 版本,可免費在商業產品中使用,不需要公布應用程序源碼,沒有潛在商業風險。
作者: 點擊小子 時間: 2021-3-4 16:03
這,你還沒完成呢!
作者: 澤文i 時間: 2021-3-4 19:51
哈哈哈,精力有限,慢慢來,哈哈
作者: angmall 時間: 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上面
作者: leonine 時間: 2021-6-27 16:07
tql!!!!
作者: hei51com 時間: 2021-6-28 10:04
可以有,非常支持,國人就是缺少這種開源精神
作者: IdeaMing 時間: 2021-6-28 10:45
簡單看了一下src GPIO.C并不支持端口模式配置啊,只是中斷腳的配置,端口配置還是寄存器?
歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |