<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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



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

          評(píng)論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();