磁場檢測儀的嵌入式軟件和硬件協同開發模式

3.2 引入版本控制器實現代碼合并
引入嵌入式操作系統后,每個嵌入式軟件開發人員只需負責一個或若干任務。通過引入源代碼控制軟件,可以實現嵌入式軟件代碼的整合和集中備份。其中,SVN是BitNami Redmine Stack一鍵式安裝模式中默認安裝的版本控制器。通過SVN的使用,開發人員每天回到實驗室,通過SVN更新整個項目代碼,然后用Source Insight開始一天的代碼編寫工作。下班前,使用IAR編譯平臺進行代碼編譯,確認沒有編譯錯誤后,再把自己修改過的代碼上傳到SVN中。上傳代碼時,SVN會自動檢測代碼是否存在沖突(如果兩個或多個開發人員都改動了某一文件的同一地方,SVN會提示存在沖突)。如果存在沖突,開發人員可根據實際需要,協調解決沖突。
引入SVN后,每次代碼上傳到SVN后都會自動更新生成一個版本號。當磁場檢測儀的嵌入式軟件各模塊聯調出現新問題時,通過比較類軟件(如beyond compare),比較兩個版本代碼之間的差別,很多時候能夠快速找出問題的關鍵所在。
4 下位機和上位機的協同開發
Bus Hound可以用來分析USB總線數據協議、捕獲I/O動作等。同時,也可以傳送用戶編寫的命令,實現對下位機的控制和調試。雖然上位機軟件還沒有完成,但定義好上位機和下位機的通信協議后,可以用Bus Hound模擬上位機軟件接收下位機軟件發送的USB數據,或發送USB數據給下位機軟件,從而實現上位機和下位機軟件的并行開發。
在磁場檢測儀中,使用南京沁恒電子有限公司生產的CH375作為USB主控芯片,實現ARM和上位機的USB通信。實際編程中,使用了CH375的3個端點,端點0用于控制傳輸,實現USB設備的枚舉;端點2 IN用于USB數據從下位機到PC的Bulk傳輸(一次最多64字節);端點2 OUT用于USB數據從PC到下位機的Bulk傳輸(一次最多64字節)。Bus Hound接收32字節磁場測量數據如圖3所示,利用Bus Hound控制CH373的USB端點2OUT,分32次控制接收下位機回傳1 KB的磁場點采集信號數據,最終通過PC的中頻磁場分析軟件實現中頻磁場的單點、平面和空間的磁場模擬分布顯示。

另外,端點1 IN用于USB數據從下位機到PC的中斷傳輸,端點2 OUT用于USB數據從PC到下位機的BULK傳輸(一次最多8字節)。在磁場檢測儀嵌入式軟件的調試中,利用端點1 IN發送調試指令和接收調試數據。
結語
Redmine、Proteus、μC/OS-II、SVN和Bus Hound的使用,提高了磁場檢測系統的開發效率和開發質量,為磁場檢測系統高效、高質量地完成開發任務提供了堅實的基礎。在實際使用該協同開發模式中,高校或中小企業可以根據自身的實際需要進行改動,如μC/OS-II換成μCl inux等其他嵌入式操作系統,SVN換成GIT等其他版本管理器,Proteus換成SkyEye等其他仿真平臺。最終,有效提高了高校研究生課程的教學效果以及高校和企業的項目開發效率和開發質量。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論