新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 協同開發模式在磁場檢測儀開發中的應用

        協同開發模式在磁場檢測儀開發中的應用

        作者: 時間:2012-11-07 來源:網絡 收藏

        由于采用和IAR聯調,即在IAR集成開發環境中進行代碼調試,運行和調試結果直接在中顯示,因此不用等到樣板制作完畢再開始嵌入式軟件的調試,從而做到嵌入式軟件和硬件的同步開發。
        另外,相對于直接在樣板上調試,更容易判斷出某個功能不能實現的具體原因,是由于硬件的故障還是軟件的編程問題引起的,從而避免了誤將硬件故障認為是軟件編程問題的情況發生,大大提高開發效率。另一方面,在磁場檢測儀LCD顯示驅動程序的調試中,利用Proteus提供的邏輯分析儀虛擬儀器測量LCD驅動時序,可以非常直觀地調試LCD的驅動程序,快速地完成LCD驅動程序的編程和調試。
        由于磁場檢測儀中每一版本的PCB都只焊接制作了3塊樣板,大部分調試都在Proteus上完成。所以,用Proteus代替實際樣板調試,可以很大程度地減少元件的購置,減少樣板的制作;同時,也大大減少了JTAG仿真器、示波器、邏輯分析儀等調試設備的購置。為磁場檢測系統開發節約大量的資金和寶貴的開發時間。

        3 嵌入式軟件各模塊
        3.1 引入實現任務分解
        現在,國內低端手機設計上廣泛使用聯發科技MTK的方案,將手機芯片和手機軟件平臺預先整合到一起。MTK的整套軟件系統十分龐大且復雜,但其架構是引入Nucleus,將手機軟件分解成多個任務并行開發。
        MTK使用了Nucleus實時操作系統,但在其上做了內核抽象層的封裝,以適應最終生產廠商選擇其他實時操作系統的需要(如選擇替換為ThreadX)。Nucleus、ThreadX和μC/OS-II這3個功能上很類似,但商用license是不一樣的。其中μC/OS-II應用在市場上銷售的產品,是需要購買license的;而針對高校的教學和研究,是免費的。這也是μC/OS-II廣泛被高校教師和學生認知的一個重要原因,同時這也是我們優先采用μC/OS-II作為磁場檢測儀的嵌入式操作系統的一個重要原因。
        目前,ARM程序的規模一般都很大,需要多人。由于不帶嵌人式操作系統的程序,僅依靠全局變量和函數傳遞信息,程序耦合度十分高,很難實現多人的。引入嵌入式操作系統后,各個任務間通過消息郵箱、消息隊列或信號量同步,大大降低程序的耦合度,極大地提高團隊協同開發的效率。
        引入嵌入式操作系統后,一般將程序分成幾個任務(線程),分別由專人負責。嵌入式軟件開發流程中,首先是對電路板和嵌入式操作系統進行初始化,接著創建若干任務,剩下的工作就是編寫每個任務或中斷處理的程序代碼。圖2為磁場檢測儀的中斷和任務間的同步關系框架圖。

        本文引用地址:http://www.104case.com/article/148266.htm

        c.JPG


        3.2 引入版本控制器實現代碼合并
        引入嵌入式操作系統后,每個嵌入式軟件開發人員只需負責一個或若干任務。通過引入源代碼控制軟件,可以實現嵌入式軟件代碼的整合和集中備份。其中,是BitNami Stack一鍵式安裝模式中默認安裝的版本控制器。通過的使用,開發人員每天回到實驗室,
        通過更新整個項目代碼,然后用Source Insight開始一天的代碼編寫工作。下班前,使用IAR編譯平臺進行代碼編譯,確認沒有編譯錯誤后,再把自己修改過的代碼上傳到SVN中。上傳代碼時,SVN會自動檢測代碼是否存在沖突(如果兩個或多個開發人員都改動了某一文件的同一地方,SVN會提示存在沖突)。如果存在沖突,開發人員可根據實際需要,協調解決沖突。
        引入SVN后,每次代碼上傳到SVN后都會自動更新生成一個版本號。當磁場檢測儀的嵌入式軟件各模塊聯調出現新問題時,通過比較類軟件(如beyond compare),比較兩個版本代碼之間的差別,很多時候能夠快速找出問題的關鍵所在。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 双流县| 阿尔山市| 都兰县| 斗六市| 右玉县| 获嘉县| 隆德县| 远安县| 同心县| 克山县| 湛江市| 汽车| 安吉县| 大渡口区| 岑溪市| 剑阁县| 永登县| 巴中市| 孝感市| 色达县| 汤阴县| 嘉善县| 莆田市| 梨树县| 栾城县| 赤水市| 水城县| 阳曲县| 资源县| 花垣县| 威海市| 兴义市| 康乐县| 乐清市| 女性| 南川市| 肇源县| 林甸县| 将乐县| 璧山县| 聂荣县|