日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]軟硬件協(xié)同開發(fā)的應對方案

ce="Verdana">從事嵌入式業(yè)務已有很多年時間了,但還是不清楚“協(xié)同開發(fā)”是否是指管理人員夢想實現(xiàn)超高效項目開發(fā)進度的一種方式,還是說對于軟件開發(fā)人員而言是一種折磨?;蛟S它只是意味著軟件開發(fā)與硬件平臺設計齊頭并進吧。這除了意味著軟件人員的苦難之外,真不清楚還意味著什么。

  在嵌入式領域,經(jīng)常要為正在設計中的電路板或芯片同時編寫軟件。有時是為Mentor Graphics或Cadence Design Systems等EDA廠商仿真環(huán)境中復雜的ASIC設計而編寫軟件。有時則是為XilinxAltera等公司功能強大的FPGA設計而編寫軟件。FPGA器件帶有與標準和定制IP模塊相連的嵌入式微處理器內(nèi)核。還有的時候是為了可編程片上系統(tǒng)編寫軟件,這種可編程片上系統(tǒng)將可編程數(shù)字/模擬功能和微控制器完美集成在一起(如賽普拉斯的PSoC器件)。這些功能都非常強大,能實現(xiàn)難以置信的創(chuàng)新,但同時也會帶來痛苦,那就是硬件可能隨時發(fā)生變化,而軟件開發(fā)人員則難以招架。

  不是建議放慢創(chuàng)新步伐,而是說應該給軟件工程師一個喘氣的機會。但事實上剛好相反。硬件工具需要更好地與軟件IDE集成在一起才能加速產(chǎn)品上市進程。而設計人員需要更多工具和方法讓應用不受硬件變化的影響。不是說向設計中添加或從中移除主要的通信模塊。如果您的真需要添加或移除主要通信模塊,那么您的軟件工程師真該找點別的事干了,因為這意味著硬件設計還根本沒就位呢。這里說的變化都是設計周期較晚階段對于已定義的功能模塊進行的微小改變,比方說寄存器地址變動、比特位被重新定義、緩沖區(qū)大小改變等。這些“小變化”也會影響到軟件,進而可能造成產(chǎn)品缺陷,甚至在忘記硬件變化原因時還要對軟件進行長時間返工。

  軟件工程師,現(xiàn)在到了們奮起反擊的時候了!以下給出了針對目標不斷變化的情況如何靈活進行應用開發(fā)的三點建議。在開始新的項目之前,不要忘掉這些建議!

  1、不要編寫HAL,要生成它!

  我們需要的第一個變化就是讓硬件開發(fā)工具生成軟件接口,也就是通常所說的硬件適配層(HAL)。HAL應包括能可靠地初始化可編程硬件的啟動代碼,并提供API接口以支持系統(tǒng)的軟件控制。HAL不僅簡化了固件開發(fā),還能將實施從接口中抽象出來。這就意味著硬件的微小變化不會對固件造成影響。

  中其實沒什么新概念,許多經(jīng)驗豐富的設計人員已經(jīng)明智指出,常量、函數(shù)和變量都應采用一致的、直觀的命名規(guī)范。不過,對于FPGA、CPLD和PSoC等可編程器件而言,們還要將此規(guī)范進一步擴展,也就是HAL要由硬件設計工具生成,否則軟件工程師怎么才能確??煽康慕涌谀兀?/font>

  在固定或變化很少的環(huán)境中(比如說固定功能MCU或大規(guī)模ASIC項目),們可將HAL視為一套獨立的API,可將其作為硬件設計變化的一部分進行修改。不過,對于現(xiàn)代化的可編程器件而言,硬件一天會變化好幾次。手動HAL維護與當前情況根本不相匹配,肯定會在實施階段出現(xiàn)錯誤,更別說要對軟件工程師帶來多大痛苦和折磨了!認為,HAL自動生成應為任何可編程平臺的必備要求。

  圖1:PSoC Creator工作區(qū)域抓屏,其中們看到采用FanController模塊和一對比較器(Comp_Hi)和(Comp_Lo)的系統(tǒng)控制器設計所用的API文件(HAL)。

  2、集成自己最喜歡的

  可編程器件為創(chuàng)新帶來了巨大機遇,但往往設計硬件所需的工具會對正常軟件開發(fā)實踐造成影響。工程師往往不得不使用簡單、功能欠佳的工具,而且不能與現(xiàn)有的流程很好地結(jié)合。

  大多數(shù)協(xié)同設計環(huán)境都是從硬件設計工具演變而來,這些工具多年來一直支持ASIC和FPGA或CPLD流程。隨著嵌入式CPU越來越普及,為工具產(chǎn)品組合添加軟件開發(fā)功能的需求變得非常明顯,這樣,一種工具就能支持軟硬件兩個領域,但對兩個領域各自而言又都不夠理想。在此情況下,工程師就會在兩個領域都會減少特性選擇,甚至喪失特性選擇。

  解決方案不是讓工具廠商提供業(yè)界領先的調(diào)試器,將其捆綁到硬件設計工具中,就宣布成功,然后奇怪軟件工程師怎么還在不停地抱怨。為以硬件為中心的工具添加源代碼編輯器并調(diào)試特性,這并不能真正解決問題,因為工具仍沒有集成到用戶的流程中。源控制接口、軟件測試套件、自動化構(gòu)建等是目前開發(fā)人員每天都要接觸的工作,將硬件設計工具集成到他們的日常工作中才是真正的挑戰(zhàn)。

  正確的做法根本不是集成調(diào)試器、編輯器或整個IDE,而是要讓軟件開發(fā)人員從項目一開始就能在自己真正喜歡并使用的傳統(tǒng)IDE開發(fā)環(huán)境中開展工作。硬件設計人員或許仍需要工具中的軟件特性來創(chuàng)建并運行小型測試程序,但真正的應用開發(fā)應當始終在工程師首選的IDE中進行。

  如果想要滿足這一要求,一個辦法就是要能夠?qū)㈨椖繌囊粋€工具導出到另一個工具。舉例來說,賽普拉斯的PSoC Creator能夠?qū)SoC設計直接導入到Keil μVision工具中。在許多可編程系統(tǒng)中,“硬件”事實上是作為數(shù)據(jù)塊提供,能在啟動時被編程到器件中,以創(chuàng)建配置好的器件。對于軟件而言,它僅僅是數(shù)據(jù),因此導出設計只需硬件工具為目標產(chǎn)品生成項目文件,再用HAL源文件和初始化代碼植入即可。應用隨后就能在硬件頂層上進行構(gòu)建,而且不會干擾現(xiàn)代化環(huán)境中使用的自動化測試和源控制系統(tǒng)。

  圖2:PSoC Creator的“IDE 導出”GUI.本對話框用來創(chuàng)建和更新用于應用開發(fā)的Keil μVision項目。[!--empirenews.page--]

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

圖3:以上導出的系統(tǒng)控制器項目在Keil μVision中打開,可用于應用開發(fā)。

  3、超越軟件范疇的調(diào)試

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

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

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

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

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

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

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

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

  4、面向可編程器件的完整產(chǎn)品

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

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

本站聲明: 本文章由作者或相關機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關鍵。

關鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅(qū)動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關鍵字: LED 驅(qū)動電源 開關電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅(qū)動電源
關閉