1
開源RTOS
我最早接觸的開源代碼,應(yīng)該就是FreeRTOS了,從接觸到現(xiàn)在對于該RTOS的代碼研讀應(yīng)該有3遍的樣子,雖然工作以后也會用到其他的RTOS,但感覺都大同小異,因?yàn)樗麄兎庋b的服務(wù)接口都很類似,一通百通,所以后面接觸的uCOS和RTThread雖然有時候也會看會代碼,但終究沒有從頭到尾研讀過,除非遇到了一些更底層點(diǎn)的問題。
如果有RTOS開發(fā)需求或者是感興趣的朋友,建議都能夠認(rèn)認(rèn)真真研讀完一款RTOS的代碼,這樣對自身的編碼水平和能力會有較大的提升。
當(dāng)然,在首次閱碼的過程中會遇到很多理解上的問題,希望你能夠用心的補(bǔ)充相關(guān)軟件知識和數(shù)據(jù)結(jié)構(gòu)理論等,這樣才能獲得更大的學(xué)習(xí)收益。
2
開源UGUI
曾經(jīng)也嘗試閱讀過GUI的一些代碼,只要是嵌入式行業(yè)的伙計都會有一個徒手寫一款類似于手機(jī)界面的夢吧~
其實(shí)很早玩的圖形界面就是 uCGUI ,uCGUI可以說是emwin的一版精簡版,老版本他們是開源的,而新版本都閉源了,而后來工作上對圖形界面這一塊需求不是很大,也就沒有再去繼續(xù)閱讀下去,僅僅理了一下圖形界面的設(shè)計思路吧。
因?yàn)槔锩嫔婕暗胶芏嗟挠嬎銠C(jī)圖形算法等知識,數(shù)學(xué)等功底還不能少,難度不小,撤~
后來兜兜轉(zhuǎn)轉(zhuǎn)換了一些公司又多多少少會涉及到一些小型的自研單色GUI,所以在需求設(shè)計和功能擴(kuò)展上也會去找一些相關(guān)開源的代碼來吸收和借鑒,比如littlevGL、MonoGUI、MiniGUI、simpleGUI等,這些基本上都讀過和測試過。
3
框架和庫
最后是一些常用的框架和庫,這一部分相對比較獨(dú)立,在平時的一些項(xiàng)目開發(fā)中可以帶來一些借鑒意義和靈感。不過,不建議大家直接拿來就用,畢竟大部分組件的代碼量都不是很大,還是要理順一下思路,能夠在此基礎(chǔ)上擴(kuò)展那就再好不過了。
當(dāng)然,如果你真的時間不夠,也要了解清楚每個組件的適應(yīng)場景和使用條件,避免一些迷之bug。
下面,我們來看看作者推薦了哪些好東西。
**cJSON:**基于ANSIC的超輕量級JSON解析器。
MultiTimer: 一個軟件定時器擴(kuò)展模塊,可無限擴(kuò)展你所需的定時器任務(wù),取代傳統(tǒng)的標(biāo)志位判斷方式, 更優(yōu)雅更便捷地管理程序的時間觸發(fā)時序。
MultiButton: 一個小巧簡單易用的事件驅(qū)動型按鍵驅(qū)動模塊,可無限量擴(kuò)展按鍵,按鍵事件的回調(diào)異步處理方式可以簡化你的程序結(jié)構(gòu),去除冗余的按鍵處理硬編碼,讓你的按鍵業(yè)務(wù)邏輯更清晰。
lw_oopc: 是了高先生及其MISOO團(tuán)隊(duì)創(chuàng)作的lw_oopc宏,一個輕量級的C語言面向?qū)ο?a href="http://m.sdkjxy.cn/v/tag/1315/" target="_blank">編程框架。
cmd-parser: 一個非常簡單好用的命令解析器,占用資源極少極少,采用哈希算法超快匹配命令!
letter shell: 是一個C語言編寫的,可以嵌入在程序中的嵌入式shell,主要面向嵌入式設(shè)備,以C語言函數(shù)為運(yùn)行單位,可以通過命令行調(diào)用,運(yùn)行程序中的函數(shù)。
eepromfs: 基于EEPROM的簡易類文件的數(shù)據(jù)讀寫庫,方便做動態(tài)功能增減時參數(shù)管理。增減參數(shù)塊類似增減文件,不會對已有數(shù)據(jù)存儲帶來影響。
EFSM (event finite state machine,事件驅(qū)動型有限狀態(tài)機(jī)):是一個基于事件驅(qū)動的有限狀態(tài)機(jī),主要應(yīng)用于嵌入式設(shè)備的軟件系統(tǒng)中,EFSM的設(shè)計原則是:簡單!
OpenBLT: 主要用作STM32引導(dǎo)加載程序。它可以與幾乎任何微控制器一起工作,并使用幾乎任何類型的通信接口來執(zhí)行固件更新。
**NorthFrame:**是基于非UML極簡理念的狀態(tài)機(jī)框架,配合NF_FsmDesigner圖形化開發(fā)工具,可無負(fù)擔(dān)替代傳統(tǒng)switch-case狀態(tài)機(jī)開發(fā)。
**lwrb:**庫提供了通用的FIFO環(huán)緩沖區(qū)實(shí)現(xiàn)。
**EasyLogger:**是一款超輕量級(ROM<1.6K, RAM<0.3K)、高性能的 C/C++ 日志庫,非常適合對資源敏感的軟件項(xiàng)目,
**EasyFlash:**是一款開源的輕量級嵌入式Flash存儲器庫,方便開發(fā)者更加輕松的實(shí)現(xiàn)基于Flash存儲器的常見應(yīng)用開發(fā)。
**SFUD:**一款開源的串行 SPI Flash 通用驅(qū)動庫。解決 Flash 的差異現(xiàn)狀而設(shè)計,讓我們的產(chǎn)品能夠支持不同品牌及規(guī)格的 Flash,提高了涉及到 Flash 功能的軟件的可重用性及可擴(kuò)展性,同時也可以規(guī)避 Flash 缺貨或停產(chǎn)給產(chǎn)品所帶來的風(fēng)險。
**znfat:**振南的znFAT是一套高效、完備、精簡且具有高可移植性的嵌入式FAT32文件系統(tǒng)。
以前經(jīng)常談到閱讀源碼、閱讀源碼,那么這里就為大家精選了一波開源代碼供大家學(xué)習(xí)參考,相關(guān)介紹來自于項(xiàng)目本身和修改。
它們均可以在github,gitee等開源平臺搜索查找到,這里就不放鏈接了,自己動動手,快速查找資料也是一種能力~
-
FreeRTOS
+關(guān)注
關(guān)注
14文章
499瀏覽量
67286 -
RTThread
+關(guān)注
關(guān)注
8文章
132瀏覽量
42833 -
開源代碼
+關(guān)注
關(guān)注
0文章
41瀏覽量
4025
發(fā)布評論請先 登錄
開源教程《代碼規(guī)范與程序框架》優(yōu)酷連載 請大家多多支持
開源框架教程(二)—— iOS APP開發(fā)
物聯(lián)網(wǎng)APP開源框架教程(二)—— iOS APP開發(fā)
物聯(lián)網(wǎng)APP開源框架教程(三)—— Andriod APP開發(fā)(安卓)
機(jī)智云開源框架介紹
機(jī)智云APP開源框架介紹
Go 相關(guān)的框架,庫和軟件的精選清單 精選資料分享
精選的 Go 框架,庫和軟件的精選清單 精選資料分享
開源RTOS的相關(guān)資料推薦
51單片機(jī)應(yīng)用開發(fā)案例精選-源代碼
微軟發(fā)布開源框架驅(qū)動程序模塊新框架
開源交易大廳:Vitu要做最好的Crypto開源框架
知名開源前端框架uni-app包含熱更新代碼,谷歌“封殺”
知乎開源“智能預(yù)渲染框架” 幾行代碼實(shí)現(xiàn)鴻蒙應(yīng)用頁面“秒開”
精選的開源框架與代碼分享!
評論