新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > stm32軟件系統(tǒng)從裸機(jī)升級為ucos

stm32軟件系統(tǒng)從裸機(jī)升級為ucos

作者: 時(shí)間:2016-11-25 來源:網(wǎng)絡(luò) 收藏
如題,公司的項(xiàng)目,stm32原來是裸奔的,驅(qū)動之類都是直接寫的,這一個(gè)星期,將驅(qū)動和上層的應(yīng)用升級為ucos的版本。
由于ucos系統(tǒng)很簡單(5000行),而且別人都做好了現(xiàn)成的stm32移植,我只是簡單的做上面的驅(qū)動和應(yīng)用,我主要關(guān)注點(diǎn)是怎么利用ucos系統(tǒng)接口完成應(yīng)用。
之所以升級到ucos版本,是因?yàn)樵瓉淼?strong>iic和SPI驅(qū)動由于要死等,導(dǎo)致應(yīng)用層的任務(wù)被阻塞,而導(dǎo)致伺服周期不準(zhǔn),雖然用上了外部定時(shí)器中斷來觸發(fā)伺服任務(wù),但是還是有不準(zhǔn)的情況,所以對iic和SPI驅(qū)動改造,不再是死等,而是等的時(shí)候放棄CPU(OSTimeDly(1)),這樣,即使在運(yùn)行過程中,也可以很方便的讀寫eeprom。

心得體會:
1)復(fù)雜多任務(wù)的情況下面,ucos有很大的優(yōu)勢,會提高實(shí)時(shí)性
2)任務(wù)間同步很方便,鎖可以方便的對全局資源進(jìn)行排他占用,而且很好的防止優(yōu)先級反轉(zhuǎn),信號量很好的作為通知手段,實(shí)時(shí)性很強(qiáng),任務(wù)不用不斷循環(huán)查詢了。
3)??臻g的大小很難定義,由于任務(wù)的局部變量都是自棧上分配的,所以必須分配合理的空間,否則會任務(wù)溢出掛掉,由于stm32和ucos是針對小型系統(tǒng)做的,所以這個(gè)棧獨(dú)立也可以可以接受的,而且其實(shí)也簡單
4)ucos很簡單,我真正開始用,才1周時(shí)間,基本完成原來驅(qū)動和應(yīng)用的移植
5)大系統(tǒng),建議上強(qiáng)大的CPU(支持MMU),強(qiáng)大的操作系統(tǒng)



關(guān)鍵詞: stm32軟件系統(tǒng)uco

評論


技術(shù)專區(qū)

關(guān)閉