stm32軟件系統(tǒng)從裸機(jī)升級為ucos
由于ucos系統(tǒng)很簡單(5000行),而且別人都做好了現(xiàn)成的stm32移植,我只是簡單的做上面的驅(qū)動和應(yīng)用,我主要關(guān)注點是怎么利用ucos系統(tǒng)接口完成應(yīng)用。
之所以升級到ucos版本,是因為原來的iic和SPI驅(qū)動由于要死等,導(dǎo)致應(yīng)用層的任務(wù)被阻塞,而導(dǎo)致伺服周期不準(zhǔn),雖然用上了外部定時器中斷來觸發(fā)伺服任務(wù),但是還是有不準(zhǔn)的情況,所以對iic和SPI驅(qū)動改造,不再是死等,而是等的時候放棄CPU(OSTimeDly(1)),這樣,即使在運行過程中,也可以很方便的讀寫eeprom。
心得體會:
1)復(fù)雜多任務(wù)的情況下面,ucos有很大的優(yōu)勢,會提高實時性
2)任務(wù)間同步很方便,鎖可以方便的對全局資源進(jìn)行排他占用,而且很好的防止優(yōu)先級反轉(zhuǎn),信號量很好的作為通知手段,實時性很強(qiáng),任務(wù)不用不斷循環(huán)查詢了。
3)??臻g的大小很難定義,由于任務(wù)的局部變量都是自棧上分配的,所以必須分配合理的空間,否則會任務(wù)溢出掛掉,由于stm32和ucos是針對小型系統(tǒng)做的,所以這個棧獨立也可以可以接受的,而且其實也簡單
4)ucos很簡單,我真正開始用,才1周時間,基本完成原來驅(qū)動和應(yīng)用的移植
5)大系統(tǒng),建議上強(qiáng)大的CPU(支持MMU),強(qiáng)大的操作系統(tǒng)
評論