關於裸機編程的框架整理(一)


之前寫過單片機狀態機的框架編寫,軟件定時器的編寫等,這些都是在中大型裸機框架中經常用到的,否寫就無法很難寫好軟件。

本文則再次整理一些裸機框架的一點思路。

毫無疑問,裸機里面,狀態機、軟件定時器都是要用到的,但是在整個工程里面,需要合理設計框架,合理利用狀態機和軟件定時器,至關重要了。

裸機就是大循環+各種中斷。
中斷里面,就是快進快出,這個是普遍使用的原則;除非大循環啥事不干,則可以在中斷里面處理事情,但這種情況相對來說,還是少數。

大循環等於單線程。因此,通常情況下,任務都在大循環里面處理的,任務里面細分很多小任務,小任務的處理速度就比較重要了。
比如,任務中有5個任務,每個人任務里面處理不同的事務,如果其中一個任務的處理時間較長,則會拖累其他的4個任務,哪怕其他4個任務,都是處理非常快,但是由於第5個任務處理很慢,導致系統性能就降低了很多。
因此,我們需要將處理慢的這個任務進行優化。

優化的方式可能有:
1、如果任務里面有for循環,比如讀取很多通道的傳感器采集的信息,那么可以一次只讀一個,盡管讀完所有的信息時間變慢了,但是整體性能提升了,不會阻塞后續的任務執行,而且通常傳感器讀取的信息需求不是特別快,能滿足要求就行,1s內讀取所有的信息未嘗不可。

2、如果一個任務需要很長的時間才能執行一個完整的周期,那么干脆就使用狀態。如果485主從機通信,這種情況下通常就是狀態機來執行。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM