<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 采用Eclipse IDE技術加快MCU的設計工作

          采用Eclipse IDE技術加快MCU的設計工作

          作者: 時間:2012-02-03 來源:網(wǎng)絡 收藏

          更快、更好、更廉價——產(chǎn)品開發(fā)環(huán)境層面的競爭日趨白熱化,要求也比以前高。過去,不同工具間缺乏互操作性是開發(fā)人員面臨的主要問題,他們不得不花大量時間來確保互操作性,浪費了產(chǎn)品開發(fā)的寶貴資源。

          本文引用地址:http://www.ex-cimer.com/article/172201.htm

          如何用更少的資源與時間開發(fā)更好的產(chǎn)品?本文將介紹開放式源代碼集成環(huán)境()的優(yōu)勢以及如何用它來加速開發(fā)微控制器()。

          開放式源代碼與

          顧名思義,開放式源意味著源代碼的開放性,也就是說,軟件應當能夠免費再分發(fā),并提供開放式源代碼。此外,還要允許他人修改,以衍生出新的軟件,并同時維護作者源代碼的完整性(2005年開放式源代碼計劃)。

          14.jpg
          圖1 平臺的開放式可擴展架構

          Eclipse是工具集成的開放式平臺之一,該平臺開放式源代碼模式運作,并提供公共許可證(提供免費源代碼)以及全球發(fā)布權利。Eclipse平臺基于圖1所示的開放式可擴展架構。

          除了Eclipse平臺的運行時內(nèi)核之外,其所有功能均位于不同的插件中。開發(fā)人員既可通過Eclipse項目的不同插件來擴展平臺功能,也可利用其他開發(fā)人員提供的插件。一個插件可以插入另一個插件,從而實現(xiàn)最大程度的集成。

          Eclipse的優(yōu)勢

          Eclipse 平臺具備以下幾方面的優(yōu)勢。

          1 社區(qū)頗具規(guī)模

          Eclipse自 2001 年推出以來,已形成大規(guī)模社區(qū),這為人員提供了許多資源,其中包括圖書、教程和網(wǎng)站等,以幫助他們利用Eclipse平臺與工具提高效率。Eclipse平臺和相關項目、插件等都能直接從eclipse.org網(wǎng)站下載獲得。

          2 不斷改進

          Eclipse的開放式源代碼平臺幫助開發(fā)人員持續(xù)充分發(fā)揮其他開發(fā)人員提供的大規(guī)模資源優(yōu)勢。Eclipse在以下多個項目上不斷改進。
          ● 平臺項目——側重于Eclipse本身;
          ● CDT項目——側重于C/C++開發(fā)工具;
          ● PDE項目——側重于插件開發(fā)環(huán)境。

          3 幫助用戶

          人員始終能獲得源代碼,因此總能修正工具的錯誤,它能幫助設計人員節(jié)省時間,自主控制開發(fā)

          4 互操作性

          Eclipse平臺Java語言編寫,可在Windows、HP-UX 與Linux等多種開發(fā)站上部署。開放式源代碼工具支持多種語言、多種平臺以及多種廠商環(huán)境。

          5 可擴展性

          Eclipse采用開放式、可擴展架構,因而,它能夠與ClearCase、SlickEdit、Rational Rose以及其他統(tǒng)一建模語言(UML)套件等第三方擴展協(xié)同工作,此外,它還能與各種圖形用戶接口(GUI)編輯器協(xié)同工作,并支持各種插件。

          15.jpg

          圖2 CCEssential的用戶界面

          針對開發(fā)的Eclipse工具

          Code Composer Essentials(CCEssential)既是Eclipse工具的一個范例,也是為微控制器MSP430開發(fā)的一款。這款IDE采用Eclipse平臺用戶界面,提供編輯器、視圖和以下功能,如圖2所示。

          ● 導航器視圖(左)列出項目所有源文件。設計人員在此執(zhí)行所有與項目源文件相關的工作。
          ● 編輯器(中上方)突出顯示設計人員輸入代碼中的語法錯誤。設計人員在此設置書簽或任務
          ● 大綱視圖(右上方)列出項目的函數(shù),設計人員能夠在源文件中導航。
          ● 控制臺視圖(中下方)使設計人員能夠查看所有命令與結果反饋。
          ● 問題視圖(右下方)顯示所有故障,設計人員雙擊就能查看故障發(fā)生的位置。

          多個編輯器與視圖窗口使設計人員能夠在一個屏幕中查看所有情況,從而提高了程序的可視性,以便讓用戶更好地了解程序是否滿足關鍵目標。視窗的靈活性使設計人員能夠調(diào)整窗口大小,并根據(jù)個人喜好重新安排窗口的位置,還支持拖放操作。

          利用開放式源代碼開發(fā)平臺的內(nèi)核集成,加強協(xié)作功能,MCU工具制造商能夠充分發(fā)揮平臺的重復使用性,從而集中精力加強內(nèi)核的開發(fā)工作,以提高代碼密度,添加更多增強性能,不斷推出新的開發(fā)

          采用定制插件開展設計工作

          在封閉式源代碼環(huán)境中評估LCD顯示屏的MCU器件時,設計人員只能購買LCD評估板,將其連接到MCU上來檢查效果。

          這種MCU評估做法的缺點在于:尋找適當?shù)腖CD顯示器并進行連接要花費大量時間。如果采用開放式源代碼工具,設計人員就能采用軟件插件獲得LCD視圖,如圖3所示。

          16.jpg
          圖3 LCD視圖

          LCD 控制器映射于存儲器的某些位置,LCD 視圖在每個斷點的特定位置讀取存儲器。隨后根據(jù)LCD 面板的相應硬件布局處理數(shù)據(jù),結果則顯示在 LCD 視圖中。

          設計定制插件

          插件面板設計人員可用 Eclipse 插件開發(fā)環(huán)境(PDE)迅速創(chuàng)建插件,該款配有 Eclipse 軟件開發(fā)套件(SDK)的開發(fā)環(huán)境可滿足插件開發(fā)的需要。圖4顯示了用于設計新插件項目的 PDE 模板。

          17.jpg
          圖4 用于設計新插件項目的PDE模板

          不妨再舉一個插件的例子,比如生成外設配置或按鈕用戶界面等。采用開放式可擴展結構和插件開發(fā)環(huán)境,設計人員可將對硬件功能的需求直接集成到工具中。

          一旦設計人員創(chuàng)建了LCD視圖之類的插件,他就能與其他有類似需求的設計人員進行共享。設計人員能在Eclipse網(wǎng)站的社區(qū)上查找開放式源代碼插件與商業(yè)插件。

          總結

          MCU設計人員可用開放式源代碼平臺來發(fā)揮用戶社區(qū)的高效支持與協(xié)作功能,從廣大的設計人員中獲得更快的新工具,并通過開放式源代碼修正工具錯誤。

          利用開放式源代碼工具,針對特定器件實現(xiàn)擴展,MCU設計人員受益于針對具體器件優(yōu)化的開發(fā)環(huán)境。他們能創(chuàng)建自己的插件,也能從社區(qū)網(wǎng)站下載現(xiàn)有的插件,從而加速部署進程。這不僅有助于加強不同工具間的互操作性,減少過去互操作性不足給MCU設計人員帶來的麻煩,而且還可釋放設計資源,以幫助他們集中精力更快速、更高效地進行開發(fā)工作。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();