磁場檢測儀的嵌入式軟件和硬件協(xié)同開發(fā)模式
3.2 引入版本控制器實(shí)現(xiàn)代碼合并
引入嵌入式操作系統(tǒng)后,每個(gè)嵌入式軟件開發(fā)人員只需負(fù)責(zé)一個(gè)或若干任務(wù)。通過引入源代碼控制軟件,可以實(shí)現(xiàn)嵌入式軟件代碼的整合和集中備份。其中,SVN是BitNami Redmine Stack一鍵式安裝模式中默認(rèn)安裝的版本控制器。通過SVN的使用,開發(fā)人員每天回到實(shí)驗(yàn)室,通過SVN更新整個(gè)項(xiàng)目代碼,然后用Source Insight開始一天的代碼編寫工作。下班前,使用IAR編譯平臺進(jìn)行代碼編譯,確認(rèn)沒有編譯錯(cuò)誤后,再把自己修改過的代碼上傳到SVN中。上傳代碼時(shí),SVN會(huì)自動(dòng)檢測代碼是否存在沖突(如果兩個(gè)或多個(gè)開發(fā)人員都改動(dòng)了某一文件的同一地方,SVN會(huì)提示存在沖突)。如果存在沖突,開發(fā)人員可根據(jù)實(shí)際需要,協(xié)調(diào)解決沖突。
引入SVN后,每次代碼上傳到SVN后都會(huì)自動(dòng)更新生成一個(gè)版本號。當(dāng)磁場檢測儀的嵌入式軟件各模塊聯(lián)調(diào)出現(xiàn)新問題時(shí),通過比較類軟件(如beyond compare),比較兩個(gè)版本代碼之間的差別,很多時(shí)候能夠快速找出問題的關(guān)鍵所在。
4 下位機(jī)和上位機(jī)的協(xié)同開發(fā)
Bus Hound可以用來分析USB總線數(shù)據(jù)協(xié)議、捕獲I/O動(dòng)作等。同時(shí),也可以傳送用戶編寫的命令,實(shí)現(xiàn)對下位機(jī)的控制和調(diào)試。雖然上位機(jī)軟件還沒有完成,但定義好上位機(jī)和下位機(jī)的通信協(xié)議后,可以用Bus Hound模擬上位機(jī)軟件接收下位機(jī)軟件發(fā)送的USB數(shù)據(jù),或發(fā)送USB數(shù)據(jù)給下位機(jī)軟件,從而實(shí)現(xiàn)上位機(jī)和下位機(jī)軟件的并行開發(fā)。
在磁場檢測儀中,使用南京沁恒電子有限公司生產(chǎn)的CH375作為USB主控芯片,實(shí)現(xiàn)ARM和上位機(jī)的USB通信。實(shí)際編程中,使用了CH375的3個(gè)端點(diǎn),端點(diǎn)0用于控制傳輸,實(shí)現(xiàn)USB設(shè)備的枚舉;端點(diǎn)2 IN用于USB數(shù)據(jù)從下位機(jī)到PC的Bulk傳輸(一次最多64字節(jié));端點(diǎn)2 OUT用于USB數(shù)據(jù)從PC到下位機(jī)的Bulk傳輸(一次最多64字節(jié))。Bus Hound接收32字節(jié)磁場測量數(shù)據(jù)如圖3所示,利用Bus Hound控制CH373的USB端點(diǎn)2OUT,分32次控制接收下位機(jī)回傳1 KB的磁場點(diǎn)采集信號數(shù)據(jù),最終通過PC的中頻磁場分析軟件實(shí)現(xiàn)中頻磁場的單點(diǎn)、平面和空間的磁場模擬分布顯示。
另外,端點(diǎn)1 IN用于USB數(shù)據(jù)從下位機(jī)到PC的中斷傳輸,端點(diǎn)2 OUT用于USB數(shù)據(jù)從PC到下位機(jī)的BULK傳輸(一次最多8字節(jié))。在磁場檢測儀嵌入式軟件的調(diào)試中,利用端點(diǎn)1 IN發(fā)送調(diào)試指令和接收調(diào)試數(shù)據(jù)。
結(jié)語
Redmine、Proteus、μC/OS-II、SVN和Bus Hound的使用,提高了磁場檢測系統(tǒng)的開發(fā)效率和開發(fā)質(zhì)量,為磁場檢測系統(tǒng)高效、高質(zhì)量地完成開發(fā)任務(wù)提供了堅(jiān)實(shí)的基礎(chǔ)。在實(shí)際使用該協(xié)同開發(fā)模式中,高?;蛑行∑髽I(yè)可以根據(jù)自身的實(shí)際需要進(jìn)行改動(dòng),如μC/OS-II換成μCl inux等其他嵌入式操作系統(tǒng),SVN換成GIT等其他版本管理器,Proteus換成SkyEye等其他仿真平臺。最終,有效提高了高校研究生課程的教學(xué)效果以及高校和企業(yè)的項(xiàng)目開發(fā)效率和開發(fā)質(zhì)量。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論