welcom ! Handel home

2014年6月17日 星期二

ST32教程(14)


 STM32筆記之十四:基本問題,來討論一下軟體架構

網上大家都在討論和學習,但是對於架構這個基本問題卻沒幾個人討論。個人認為有個好的架構是寫好代碼的基礎,可以使後期的調式工作事半功倍!!

1
架構組成:我的程式碼分為四種結構
a)        
循序執行代碼
定義:按照順序逐行執行的代碼
優點:是思路簡單,代碼可靠不易被干擾。
缺點:佔用資源
用途:只用來各種變數、函數的定義,硬體的初始化程式
位置:main.c的開始一直到main函數的while函數之前

b)        
空閒執行代碼
定義:在CPU空閒的時候才執行的代碼
        
優點:不佔用資源
        
缺點:執行的即時性不能保證
        
用途:非即時任務,調試資訊輸出,不重要的狀態指示
        
位置:main.cmain函數的while函數內部

c)        
中斷執行代碼
定義:由軟硬體事件打斷整個程式而執行的代碼
優點:可以保證即時性,各種中斷可以安排優先順序
缺點:關係相對複雜,互相之間容易干擾
用途:觸發性的代碼,比如接收資料,回應外部設備,按鈕的相應
位置:stm32f10x_it.c內部

d)        
迴圈執行代碼
定義:按照時間週期執行的代碼
優點:定期自動執行
缺點:即時性不好
用途:需要週期執行的任務,狀態檢查及相關資訊輸出,資料記錄

位置:stm32f10x_it.cSysTickHandler內部

e)        DMA
自動代碼
定義:不需要主程序干預,外設自動執行
優點:自動刷新資料,不佔用CPU資源
缺點:不能控制
用途:資料通信存儲,AD轉換
位置:不需要

2
、架構執行順序圖







沒有留言: