來源:公眾號【魚鷹談單片機】,ID ??:emOsprey
歷時兩個月(1/3),第一個完成電子表項目的學(xué)員出現(xiàn)了,并且順利的掌握了?;厮菁记桑诠ぷ髦?strong>快速定位了一個任務(wù)異常掛起的bug,這種bug沒有掌握方法的工程師可能需要調(diào)試好幾天才可能解決,而且很多工程師對此沒有頭緒,只能靠笨辦法一點點接近bug代碼,而不是說通過棧信息直擊 bug 代碼現(xiàn)場。
實用功能與驅(qū)動
今年開課以來,魚鷹也寫了大量的驅(qū)動和實用功能:
幾乎每個提交都是值得學(xué)習(xí)的知識點,并且每完成一個功能,都會對該功能的提交內(nèi)容進行整理,防止引入無關(guān)內(nèi)容,保證學(xué)員在查看提交信息時,是干凈整潔的,非常方便學(xué)員的學(xué)習(xí)。
主要功能如下:
1、串口高效打印(fifo?+?DMA?+?print)打印一條語句是*微秒*級別的,
因此也支持*中斷*打印,?但不建議在中斷中用浮點打印函數(shù);并且最大化
???利用了緩存空間,另外在初始化串口前的打印信息,數(shù)據(jù)會緩存,不會丟失
2、任務(wù)棧和異常棧溢出同時檢測,從此告別棧溢出風(fēng)險
3、更新各種驅(qū)動,如?watchdog、adc、spi、i2c、oled、w25q32、eeprom、矩陣按鍵、獨立按鍵、數(shù)碼管?等
4、MDK?模擬環(huán)境,隨時隨地學(xué) RTOS,同時對相關(guān)匯編代碼進行了大量注釋,并可隨時查看任務(wù)切換過程
5、內(nèi)部溫度、電壓采樣,掌握芯片身體狀況;
6、采用獨創(chuàng)的?DTS?架構(gòu),輕松實現(xiàn)驅(qū)動底層硬件信息的修改,設(shè)備和驅(qū)動分離
7、IO 使用沖突檢測機制
8、CmBacktrace異常調(diào)用棧信息打印
9、復(fù)位原因開機打印,告訴你因何復(fù)位,輕松掌握復(fù)位信息
10、輕松模擬?7?個?CDC?設(shè)備,并且因為移植了開源庫TinyUSB,因此可以學(xué)習(xí)大量的應(yīng)用,
????包括?lwip(c8t6?資源有限,無法測試)
11、該工程框架理論上可以方便的移植到各種單片機,具體細節(jié)后續(xù)整理
12、更多驅(qū)動將實現(xiàn):NRF2401+、MCP2515(SPI轉(zhuǎn)can)、sdio 等
更多功能將實現(xiàn) bootloader 升級 、cpu 使用率、fatfs 文件系統(tǒng) 等
uCOSII 任務(wù)切換效果實時查看
以上所有功能都可以在 STM32F103C8T6 中實現(xiàn),該開發(fā)板不到 10 RMB,加上調(diào)試器不到 20 RMB,低成本輕松學(xué)習(xí)各種技能。
硬件設(shè)備信息
驅(qū)動底層硬件信息,輕松實現(xiàn)多個相同設(shè)備的擴展,如下實現(xiàn)了 3 個串口設(shè)備:
模擬/硬件?spi 輕松切換,輕松更換 IO 信息:
工程打印信息
工程開機打印信息,包含編譯時間、版本信息、ID 、RAM 、ROM 棧、bin 文件大小、可用 RAM、復(fù)位原因等各種信息,并通過進度條直觀展現(xiàn),非常大程度還原了當前環(huán)境的資源使用情況。
視頻錄制
在此期間,基本每周上午的時間都利用上了,也錄制了大量的視頻,上傳到個人服務(wù)器(下載速度飛快):
很多內(nèi)容都在上一期給學(xué)員介紹過,如果沒有介紹過,也會免費提供給一期的學(xué)員學(xué)習(xí)。
正因為感覺這種答疑重復(fù)又耗時,因此可能不再準備開展第 3 期,而是準備錄制一些專題視頻,如 RTOS、MDK 調(diào)試、USB 等系列,但是又怕無法控制盜版數(shù)量,所以一直在猶豫(如果真錄制了,會無償提供給學(xué)員學(xué)習(xí))。
本來開班后不準備繼續(xù)招學(xué)員的,但鑒于上述考慮,而有些道友可能有錯過了之前的開課信息,因此如果對上述學(xué)習(xí)內(nèi)容感興趣的話,可以加魚鷹私聊 EmbeddedOsprey,價格上會有一定的優(yōu)惠(不再提供硬件,但會給參考購買鏈接,如果不買 STM32F4開發(fā)板,相關(guān)硬件大概在 50 RMB 左右)。
EmbeddedOsprey
該工程暫不開源,對此感興趣的話,可自行嘗試實現(xiàn)以上功能,看是否觸及到你的知識盲區(qū)了