關於裸機程式設計的框架整理(一)

2022-07-10 03:12:09 字數 650 閱讀 5906

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

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

裸機就是大迴圈+各種中斷。

中斷裡面,就是快進快出,這個是普遍使用的原則;除非大迴圈啥事不幹,則可以在中斷裡面處理事情,但這種情況相對來說,還是少數。

大迴圈等於單執行緒。因此,通常情況下,任務都在大迴圈裡面處理的,任務裡面細分很多小任務,小任務的處理速度就比較重要了。

比如,任務中有5個任務,每個人任務裡面處理不同的事務,如果其中乙個任務的處理時間較長,則會拖累其他的4個任務,哪怕其他4個任務,都是處理非常快,但是由於第5個任務處理很慢,導致系統效能就降低了很多。

因此,我們需要將處理慢的這個任務進行優化。

優化的方式可能有:

1、如果任務裡面有for迴圈,比如讀取很多通道的感測器採集的資訊,那麼可以一次唯讀乙個,儘管讀完所有的資訊時間變慢了,但是整體效能提公升了,不會阻塞後續的任務執行,而且通常感測器讀取的資訊需求不是特別快,能滿足要求就行,1s內讀取所有的資訊未嘗不可。

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

關於SOCKET程式設計的一些整理!

1.int socket int af int type int protocol 1.首先來看af 協議域又稱協議族,協議族決定了socket的位址型別,在通訊中必須採用對應的位址,2.type 指socket型別,常用到的有 sock stream sock dgram sock raw soc...

裸機程式設計的除法問題

當使用上述 會在led3 change 這個位置卡住,也就是led3無法點亮或熄滅。而在這些 之前,除法使用都是正常的 divide變數使用led燈檢測也是正常的結果 while迴圈被檢測可以進入 問題非常詭異!反覆 測試 如下時,led出現反應,也就是除法當中參與運算的,只有兩個變數,乙個立即數!...

筆記 關於網路程式設計的知識整理

說起網路程式設計,首先得從計算機網路組成結構的開始講起。先回顧一下大學的計算機基礎知識,網路結構組成主要由 1 計算機系統和終端 計算機系統和終端提供的網路服務,通俗易懂的講就是網路基礎設施建設 2 通訊處理機 粗暴的解釋就是計算機網絡卡 3 通訊線路和通訊裝置 網線 雞毛無線 wifi 等 4 作...