新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 軟硬件協同開發的應對方案

        軟硬件協同開發的應對方案

        作者: 時間:2012-10-29 來源:網絡 收藏

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

        當然,對于動態的硬件平臺而言,一次性導出不是完整的解決,還必須提供無縫更新設計的特性,而且不會破壞應用。對于支持庫的IDE來說,更新過程很簡單,因為設計可被拆分為應用項目和配置庫,這就能將應用完全隔離開來,而且能讓包含配置數據和HAL的硬件庫在設計變化時自動更新。

        圖3:以上導出的系統控制器項目在Keil μVision中打開,可用于應用開發

        圖3:以上導出的系統控制器項目在Keil μVision中打開,可用于應用

          3、超越軟件范疇的調試

          設計人員所需的第三個特性就是改進調試。在現代化器件中,“處理器”的定義不僅限于CPU的寄存器和指令集。處理器芯片集成了各種額外的片上功能,比如說常見的通信模塊和標準接口,此外還包括無所不在的定時器和計數器,以及為軟件提供數字接口的模擬功能,有時也包括定制邏輯和可切換的路由功能等。這種可定制性說到底正是們最初選擇設計的原因所在。調試器如果只支持CPU,就會讓軟件人員非常失望。們需要圍繞硬件認真解決以下問題:硬件啟動了嗎?時鐘啟動并穩定了嗎?外設在正常工作嗎?通信模塊是否生成中斷?能否發送和接收數據?能否在內部總線上正常工作?

          如果這聽起來就夠嚇人的話,還沒說到從調試器改變硬件呢,這其實是讓人的角色在迫害者和受害者之間轉變。需要符號化外設硬件的存取方式,這樣就能監控和控制影響應用的狀態變化。

          當然,符號信息必須從硬件工具中生成,就好像上述HAL一樣。通過簡單添加這一點,調試過程就變得更加簡單,功能也更加強大了。之所以說更簡單,是因為們不再需要一直查詢文檔去尋找并確認調試器中要注意哪些關鍵寄存器的地址了。而之所以說更強大,是因為現在它能支持更為復雜的調試。除了快速獲得外設模塊狀態快照之外,有時們還能從調試器控制功能塊,無需編寫代碼以編程方式重建情境就能了解情境工作的具體情況。

          交換此信息的典型方法就是讓IDE使用由硬件工具生成的XML文件。ARM CMSIS-SVD(軟件接口標準--系統視圖描述)標準就是一個很好的例子。它是基于XML的硬件描述,旨在讓調試器支持高度集成的微控制器。CMSIS是一種面向ARM Cortex微控制器的HAL的標準定義,得到了眾多廠商的廣泛采用。SVD擴展主要針對硬件描述,如寄存器、存儲器、外設等,讓從事可編程系統的人員真正地大獲裨益。

        圖4:這是一小段XML,介紹了賽普拉斯PSoC Creator調試器有關CAN實施中一個寄存器的情況

          圖4:這是一小段XML,介紹了賽普拉斯PSoC Creator調試器有關CAN實施中一個寄存器的情況。CAN_CSR_ERR_SR寄存器的地址、大小和描述均已定義,在寄存器中有5個字段,定義了名稱、大小和存取權限。

          共享硬件定義的一個重要因素就是能夠定義外設寄存器,進而言之,則能提供面向寄存器中字段的存取權限,從而確保調試器認真對待讀/寫可修改的位。硬件給們提供clear-on-read位和zero-to-toggle位以及各種其它晶體管能夠感應但是軟件很難應付的狀態處理接口。只有對硬件進行良好的機器生成定義,們才能保證用戶在外設模塊上調試寄存器或個別位時不至于浪費時間,或導致意外結果。

          有了可編程硬件的高級視圖,們不僅能檢查狀態寄存器和錯誤狀態,還能實現更多功能。舉例來說,如果硬件支持寄存器控制的開關,能實現外設I/O到器件引腳的靈活路由,那么軟件開發人員就能從調試器操控器件的內部布線!有些人聽到這里可能感覺有些嚇人,不過如果SVD信息正確生成,那么們就能限制允許的變化,確保“安全的”編輯,比如說數字信號上的多路復用器通道選擇或兩個物理引腳之間的模擬輸入切換。

          硬件工具為軟件開發人員生成調試信息,有望顯著縮短應用開發時間。不僅如此,重要的是,們還有機會在早期檢測出硬件設計錯誤,因為軟件開發人員發現混亂和代碼重寫的不正常情況下更有可能發現意料之外的行為。

          4、面向可編程器件的完整產品

          現在,“完整產品”的概念已得到充分地理解和廣泛地接受,也成了成功的重要因素。只有最佳的工具或最出色的芯片已經不夠了。們今天使用的可編程解決形式多樣:可能是全定制的ASIC,其在高度專業化的解決中集成了ARM內核和多個IP模塊;也可能是更加通用的平臺,其集成了可編程芯片和設計工具,諸如Altera和賽靈思推出的FPGA解決方案,或賽普拉斯半導體公司推出的PSoC器件等。雖然這些環境千差萬別,但都面臨著同樣的問題--不能將硬件修改有效地遷移到軟件領域,從而影響應用開發。

          認為,這個問題的根源在于項目中使用的硬件設計工具和IDE采用了狹隘的方法。像這樣的軟件狂人(開玩笑)總喜歡把所有問題都歸咎于硬件工具和工程師,但事實上硬件工具和軟件工具集都太過偏向于他們特定的領域了。很難見到二者添加了以上提到的特性,因為這些特性跟其各自的客戶好像沒什么關系。相信這種局面正在發生變化,PSoC Creator等產品支持在可編程硬件上進行器件配置同時還集成第三方IDE(如ARM的Keil μVision IDE)的工具會不斷發展。在工程師首選的IDE中實現應用開發,同時讓工具獲得獨有的強大信息并控制硬件平臺,這顯然是更高效進行產品開發、加速產品上市進程的必由之路。與此同時,減少對工程師的折磨也不失為一件大好事!


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 延安市| 轮台县| 巴林左旗| 井冈山市| 镇远县| 西青区| 工布江达县| 大悟县| 册亨县| 达州市| 瑞金市| 西丰县| 西和县| 崇左市| 青浦区| 太谷县| 泸州市| 枝江市| 外汇| 威远县| 延吉市| 芒康县| 龙岩市| 元朗区| 阿拉善右旗| 湛江市| 银川市| 兴隆县| 正镶白旗| 枝江市| 鹰潭市| 杭州市| 获嘉县| 富锦市| 桂阳县| 武宁县| 渑池县| 吴江市| 乌兰浩特市| 敖汉旗| 丹寨县|