娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年02月13日(星期四)

正在發生

2018年02月13日 | 采用Proteus實現下位機硬件和嵌入式軟件的并行開發應用

發布者:PeacefulSoul 來源: 21ic關鍵字:Proteus  下位機  并行開發 手機看文章 掃描二維碼
隨時隨地手機看文章

  本文針對磁場檢測儀需要眾多軟硬件開發人員協同開發的問題,引入Redmine項目管理平臺進行項目開發的協同管理。采用Proteus實現下位機硬件和嵌入式軟件的并行開發,引入嵌入式系統和SVN版本管理器對嵌入式軟件各模塊進行協同開發。采用Bus Hound實現上位機和下位機軟件的并行開發。最終,該協同開發模式的引入使得本項目開發用時比原計劃用時減少25%,同時項目質量也有提高。

  隨著電子產品功能日益增多、性能日益增強,低成本32位微處理器、多層PCB板被廣泛應用,軟件和開發團隊的規模隨之擴大,同時開發周期呈指數增長。因此,以往的開發方式越來越不適應項目開發的需要。目前,國內磁場檢測儀器主要集中應用在工業用低頻強磁場和通信用的高頻弱磁場測量上,而中頻強磁場測量仍是磁場測量領域的一個難題。基于嵌入式操作系統的中頻強磁場的測量系統開發中,涉及到高速硬件電路設計、多層PCB板布線、32位微處理器編程、上位機軟件編程等多項工作,因此,需要眾多開發人員協同開發。

  通過長期的實踐發現,在項目開發中引入開源項目管理平臺Redmine、嵌入式操作系統μC/OS-II、仿真軟件Proteus和調試軟件Bus Hou nd,能夠有效地提升整個項目的協同開發能力和管理水平。采用協同開發管理模式,可以達到以下4方面的顯著效果:提高嵌入式軟件和硬件之間的協同開發效率;提高嵌入式軟件各模塊間的開發效率和開發質量;提高上位機和下位機軟件的開發效率和開發質量;有效提高整個項目協同開發的管理水平。

  1 磁場檢測儀開發管理平臺

  項目管理的好壞關系到項目開發質量的高低,同時,對開發效率和開發質量也將產生重大的影響。目前市場上,基于Web的開源項目管理軟件已經發展得很成熟,此類軟件在高校的教學和研究,以及中小企業的項目開發管理中,都得到了廣泛的應用。

  現階段,在磁場檢測系統項目開發中,由于軟硬件的開發復雜,開發人員眾多且開發人員存在著開發能力參差不齊、流動性大等特點,加上項目的開發時間跨度大等原因,使得項目管理變得十分困難。經過筆者應用分析,從軟件的成熟度、穩定性、流行性、社區發展情況,以及安裝配置的簡易性這幾方面進行詳細的分析比較,最終在Launchpad、Redmine和Trac這3個軟件中,選擇了Redmine。

  在磁場檢測系統的項目管理平臺搭建中,首先,利用BitNami Redmine Stack提供的一鍵式安裝包,安裝好Redmine平臺,然后把中頻磁場檢測系統開發團隊的成員、任務(問題)、文檔、討論、Wiki、版本管理,以及各種形式的資源整合在此平臺上,大家通過一起參與更新任務、更新文檔等來推動項目的進度。同時,系統地利用時間線索和各種報表,動態顯示項目的進度狀態。

a.JPG

    
    在項目中引入Redmine管理平臺,界面如圖1所示。起到了立竿見影的效果:
    ①開發團隊中新加入的成員通過此平臺,可以快速地了解項目的詳細情況,從而能夠快速地接手項目;
    ②團隊中如有成員離開,其他成員可以快速地接手該成員原來負責的任務;
    ③相對于以往采用客戶端TortoiseSVN訪問SVN的方式,開發成員更容易接受Redmine提供的Web訪問方式,來訪問和操作SVN版本控制器;
    ④為團隊成員的內部溝通和交流提供了高效的平臺;
    ⑤根據項目的進展情況,可以及時地調整項目的進度,從而實現高效的動態管理。

2 嵌入式軟件和硬件協同開發
    Proteus可以實現原理圖設計、PCB布板以及微處理器與外圍電路的協同仿真。Proteus微處理器模型支持8051、PIC、MSP430、AVR、ARM 7和HC11等系列微處理器。其中,2011年推出的Proteus7.10版本,增加了對ARM Correx-M3系列處理器的支持。
    電子產品從芯片的選型、電路設計、PCB布板到樣板焊接調試,這中間一般需要幾個月的時間,這段時間對整個項目開發來說,是非常關鍵的。在磁場檢測儀樣板制作的同時,嵌入式軟件開發人員在Proteus中繪制基本原理圖后,就可著手在Proteus的ARM Cortex-M3微處理器模型上編寫程序。


    由于采用Proteus和IAR聯調,即在IAR集成開發環境中進行代碼調試,運行和調試結果直接在Proteus中顯示,因此不用等到樣板制作完畢再開始嵌入式軟件的調試,從而做到嵌入式軟件和硬件的同步開發。
    另外,相對于直接在樣板上調試,Proteus更容易判斷出某個功能不能實現的具體原因,是由于硬件的故障還是軟件的編程問題引起的,從而避免了誤將硬件故障認為是軟件編程問題的情況發生,大大提高開發效率。另一方面,在磁場檢測儀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為磁場檢測儀的中斷和任務間的同步關系框架圖。


c.JPG

    
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的中頻磁場分析軟件實現中頻磁場的單點、平面和空間的磁場模擬分布顯示。


b.JPG

    
    另外,端點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等其他仿真平臺。最終,有效提高了高校研究生課程的教學效果以及高校和企業的項目開發效率和開發質量。


關鍵字:Proteus  下位機  并行開發 引用地址:采用Proteus實現下位機硬件和嵌入式軟件的并行開發應用

上一篇:基于16位微處理器和實時操作系統μC/OS-II的基站監控終端設
下一篇:MCU快速編程框架示例代碼

推薦閱讀

近日,兆新股份發布業績快報,公司2017年1-12月實現營業收入6.54億元,同比增長2.83%,化學制品行業平均營業收入增長率為39.44%;歸屬于上市公司股東的凈利潤1.54億元,同比增長32.58%,化學制品行業平均凈利潤增長率為48.99%。?兆新股份表示,告期內公司營收大漲,主要原因系本報告期光伏發電業務貢獻增加,公司綜合利潤率提高。
芯片型號是STM32F103CB(128K),在工程中定義了一個常量數組到801F000地址處,編譯時出現 ......ER_IROM1: File exists ........錯誤,發現原來是芯片的型號之前為了程序方便STM32F103C8型號使用,設置成了STM32F103C8(64K),程序空間大小不一樣,所以編譯時超出了地址范圍就報錯。
簡介:PIC8位MCU的內存都是8位字節結構的,所以PICC中對于數據的劃分都是以8位為基礎的。在匯編中,我們對一個地址為0X20的內存附值:movlw 255;movwf 0x20;但一個內存是8位結構,能表示最大的數是255。要是超過了會怎么樣呢?movlw 256;movwf 0x20;通過DEBUG后,可以看出0X20中的值不是256,而是0了。這里可以看出PIC處理器計算過程是當計算結果超過...
如果你的新車沒有心儀的收音機,你會抱怨哪個國家的廠商?日本、美國、韓國、英國、荷蘭、法國、中國? 就算是一輛新型的德國產汽車,其中也包括了來自世界各地的零部件,現在的汽車產業是全球性的產業,任何一輛汽車的零部件總量中只有一半來自制造國,顯然,汽車是一條龐大而復雜的供應鏈。 這意味著供應鏈中的任何中斷都可能在整個行業中引起連鎖反應。...

史海拾趣

問答坊 | AI 解惑

通信工程的管理

工程實施控制管理流程 隨著信息行業騰飛猛進的發展,各個行業對通訊行業服務的依賴性日益增具,滿足客戶越來越高的要求是對我們嚴峻的考驗。通信建設管理在通信領域也就是一個至關重要的環節,如果由于那一個步伐拖延受阻,影響的將是大面 ...…

查看全部問答∨

一個數碼相機的電路圖

一個數碼相機的電路圖…

查看全部問答∨

世界著名汽車品牌標識演化歷史----- 薩博

薩博 Saab 如果你看過薩博汽車公司的廣告,那么你可能知道這個公司是“從噴氣機中誕生”的。1937年,為了滿足瑞典空軍的需要,Svenska Aeroplan Aktiebolaget(瑞典飛機有限公司,簡稱SAAB)成立了。 第二世界大戰結束后,薩博飛機公司 ...…

查看全部問答∨

如何使用C語言開發DSP

如何使用C語言開發DSP…

查看全部問答∨

求助:c51串行通訊丟數據

c51和電腦通訊用rs232通訊 但是總是在通訊了幾十次之后會出現數據丟數的情況 單片機收的數據不全 我PC上的軟件是顯示已經發送數據過去了 問題出在哪呢?…

查看全部問答∨

【F.H.】LM2576電源翻轉電路(穩定版)(工作原理在protel圖里)

3A正壓轉負壓電路.ddb 主要是為把+5V電壓 轉換出一個-5V電壓用 采用 LM2576-ADJ 3A輸出可調電源芯片制作,開關頻率50KHZ 該電路的典型應用是降壓,因為是斬波式降壓,所以效率比較高能達到80% 輸入電壓5V~40V,輸出1.2V~37V 代替DCDC模塊 ...…

查看全部問答∨

基于FPGA的音頻采集系統

基于紅色颶風 Xilinx 3S400 開發平臺的設計文檔. 歡迎下載.…

查看全部問答∨

JTAG接口指令集

本文節選自《嵌入式系統Linux內核開發實戰指南(ARM平臺)》一書 JTAG接口指令集包含以下常用指令: EXTEST指令     外部測試指令,必須全為0,TAP強制定義。該指令初始化外部電路測試,主要用于板級互連以及片外電路測試。 EXTEST ...…

查看全部問答∨

求助!

想做個用手機可以查詢特定的信息,免于帶筆記本來上網查詢。我覺得自己C語言還行,沒有匯編基礎,有JAVA的基礎。以前也沒搞過嵌入式開發,現在還沒什么頭緒,望各位給小弟一些相關的資料和建議,不勝感激!…

查看全部問答∨

嵌入式Linux與WinCE的優缺點比較

1.支持多種硬件平臺  由于嵌入式設備硬件平臺的多樣性,CPU芯片的快速更新,嵌入式操作系統要求支持常用的嵌入式CPU,如X86, ARM, MIPS, POWERPC等,并具有良好的可移植性。另外還需要支持種類繁多的外部設備。Linux支持以上幾乎所有的主流芯片, ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 宜君县| 云龙县| 双鸭山市| 日喀则市| 靖宇县| 麟游县| 乌鲁木齐市| 万年县| 元江| 榆中县| 丰城市| 汽车| 锦州市| 贵定县| 蛟河市| 宣恩县| 北辰区| 临清市| 竹北市| 浮梁县| 青川县| 出国| 永春县| 贵南县| 望奎县| 邛崃市| 淳安县| 宜昌市| 琼结县| 报价| 建湖县| 保康县| 罗甸县| 紫金县| 和静县| 朝阳区| 盘山县| 西城区| 安西县| 甘德县| 巴青县|