網上大家都在討論和學習,但是對於架構這個基本問題卻沒幾個人討論。個人認為有個好的架構是寫好代碼的基礎,可以使後期的調式工作事半功倍!!
1、架構組成:我的程式碼分為四種結構
a) 循序執行代碼
定義:按照順序逐行執行的代碼
優點:是思路簡單,代碼可靠不易被干擾。
缺點:佔用資源
用途:只用來各種變數、函數的定義,硬體的初始化程式
位置:main.c的開始一直到main函數的while函數之前
b) 空閒執行代碼
定義:在CPU空閒的時候才執行的代碼
優點:不佔用資源
缺點:執行的即時性不能保證
用途:非即時任務,調試資訊輸出,不重要的狀態指示
位置:main.c的main函數的while函數內部
c) 中斷執行代碼
定義:由軟硬體事件打斷整個程式而執行的代碼
優點:可以保證即時性,各種中斷可以安排優先順序
缺點:關係相對複雜,互相之間容易干擾
用途:觸發性的代碼,比如接收資料,回應外部設備,按鈕的相應
位置:stm32f10x_it.c內部
d) 迴圈執行代碼
定義:按照時間週期執行的代碼
優點:定期自動執行
缺點:即時性不好
用途:需要週期執行的任務,狀態檢查及相關資訊輸出,資料記錄
位置:stm32f10x_it.c的SysTickHandler內部
e) DMA自動代碼
定義:不需要主程序干預,外設自動執行
優點:自動刷新資料,不佔用CPU資源
缺點:不能控制
用途:資料通信存儲,AD轉換
位置:不需要
2、架構執行順序圖
沒有留言:
張貼留言