衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

集成嵌入式平臺加速了SoC和嵌入式系統的軟件調試和啟動

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Colin Walls ? 2022-06-28 15:31 ? 次閱讀

在硬件準備就緒時開始嵌入式軟件開發的日子已經一去不復返了。軟件的規模和復雜性不斷增加,因此需要更早的開始日期才能有機會按時發貨。考慮到與軟件開發相關的投資和風險,公司必須確保在硅流片之前進行適當的軟件集成。不斷縮短的上市時間窗口進一步加劇了這些挑戰。

唯一的解決方案是尋找執行方法,因此在最終目標硬件可用之前測試和調試軟件。甚至在硬件設計最終確定之前,開發通常就必須認真開始。改進硬件設計和驗證以及加速軟件啟動的一種方法是將應用程序部署在虛擬或仿真硬件上。

虛擬原型

“虛擬原型”一詞沒有單一、精確的定義。就本文而言,該術語將用于描述可以運行嵌入式代碼的任何環境,從而在實際目標系統可用之前實現有用的開發。讓我們仔細看看這些可能性。

在 PC 上運行的本機代碼

這顯然是在 PC 上編譯和運行代碼的第一步。工具很容易獲得、便宜,甚至是免費的,而且 PC 提供了高級別的功能。這個環境非常適合測試算法和基本邏輯。與實際目標相比,代碼在 PC 上的運行速度可能會更快,因為 PC 的 CPU 可能比嵌入式處理器更強大。

除了時鐘速度之外,代碼時序沒有用處,因為 x86 處理器上的指令組合與大多數嵌入式設備非常不同。一旦代碼需要與硬件或實時操作系統 (RTOS) 交互,這個執行環境就不再有用了。

本機代碼與外圍/系統模型一起運行

大多數 RTOS 制造商都提供了一個主機執行環境,可以運行特殊版本的 RTOS 或在 Windows 下模擬其功能。這與提供外圍設備功能模型的方法一起,可以取得進一步的進展。然而,時機仍然具有誤導性。

在評估板上執行

大多數半導體供應商都提供低成本評估板,以促進其 CPU 的快速部署。商業 RTOS 產品,如 Mentor Embedded 的 Nucleus RTOS 可以為此類電路板預配置,從而實現快速生產。

這種執行環境很有吸引力,因為 CPU 速度和指令組合可能非常接近最終目標,這使得時間敏感代碼的測試變得可行。這種環境的準確性取決于外圍設備與目標設備的相似性。

使用指令集模擬器

盡管執行真實芯片的代碼看起來很有吸引力,但它的缺點是需要添加代碼才能獲得某些軟件功能的可見性。這稱為“檢測”代碼。另一種方法是使用指令集模擬器 (ISS),它在逐條指令的基礎上模擬代碼執行。ISS 可以以接近實時的速度運行,并提供精確、高度可見的代碼執行。實際上,當 ISS 跟蹤仿真期間消耗的時鐘周期時,可以停止實時。

大多數 ISS 產品允許某種功能外圍建模,這使得軟件開發取得重大進展。

具有外圍設備硬件描述語言模型的 ISS(協同仿真)

硬件是使用硬件描述語言 (HDL) 設計的,例如 VHDL 或 Verilog。設計人員經常使用仿真器來驗證他們的 HDL 設計,并且當今的許多開發工具將 ISS 與 HDL 仿真器相結合。這使代碼能夠在與看似真實的硬件交互的準確 CPU 環境中執行。軟件開發人員可以使用最終目標系統的 HDL 模型來開發與硬件密切交互的驅動程序和引導代碼等軟件組件。

協同仿真的缺點是更高的精度是以降低執行速度為代價的。

完整系統的 HDL 模型,包括 CPU

最準確的虛擬原型應該是整個系統的 HDL 模型,包括 CPU 和外圍設備,這似乎是合乎邏輯的。三個原因解釋了為什么情況并非如此:

這種模型上的代碼執行速度將非常緩慢。完成任何有用的事情都不夠快。

CPU 的 HDL 不太可能可用。

由于國際空間站很可能經過精心設計,因此使用它沒有任何缺點,但確實將性能提高到了有用的水平。

具有 SystemC 外設模型的 ISS

為了允許可以適應軟件執行的適當仿真速度,可以使用諸如 SystemC(C/C++ 類庫)之類的更高抽象語言對系統進行建模。更高抽象級別的建模使用松散或近似的時序。這種時序適用于軟件執行和性能分析。

硬件仿真

到目前為止討論的虛擬原型技術可以繪制在代碼執行速度與精度的關系圖上,并且基本上會產生一條直線(參見圖 1)。開發人員可以從一系列可能性中進行選擇:一個極端是快速、抽象的模擬,另一個是緩慢、精確的模擬。然而,另一種技術逆勢而上,偏離了直線。

圖 1:除仿真外,虛擬原型環境在代碼執行速度與精度的關系圖中形成一條直線。

pYYBAGK6rmiABh2rAAR1XZNcj1A941.png

盡管只需使用功能強大的臺式計算機就可以降低 HDL 仿真的速度限制,但這也有限制,設計人員總是想要更多。電子設計自動化 (EDA) 社區的回應是開發仿真。仿真器是一種專門的硬件,實際上提供了運行 HDL 仿真的專用環境。這通常使用 FPGA 來實現。

使用 ISS、SystemC 模型和模擬一些外圍硬件的仿真器構建的集成平臺打破常規,提供精確、高性能的執行環境。運行虛擬目標和仿真可以更深入地了解硬件和軟件執行線程,并實現更高效的調試和系統性能分析。

超越調試

嵌入式軟件開發人員傳統上專注于讓他們的代碼正常運行。在最高抽象級別,這導致設備以符合設計規范的可預測方式響應刺激。這并沒有改變,但開發人員的簡介正在變得更廣泛。對軟件開發人員工作量的最重要補充是對功率的考慮。

低功耗設計之所以成為熱門話題,有幾個原因。雖然這在歷史上一直是硬件問題,但今天的復雜設計為根據系統的當前狀態、軟件和實時環境調整功耗提供了許多機會。該狀態由軟件確定;因此,電源管理正在成為一個軟件問題。

使用虛擬原型在硬件可用性之前開發和調試電源管理代碼是一項艱巨的任務,但這正是我們所需要的。當然,原則上都是可以的;硬件模擬可以得出功耗數據,并且可以測量CPU的實際功耗。這只是一個以有意義的方式將此信息傳達給軟件開發人員的問題。

前進的道路

任何認為軟件和硬件開發是獨立活動的想法都必須摒棄。好消息是,片上系統 (SoC) 生產商現在認識到需要先于芯片進行嵌入式軟件開發。壞消息是,盡管傳統的 EDA 硬件工具可以通過仿真和仿真運行嵌入式軟件,但它們并不關注嵌入式系統設計的關鍵問題,包括操作系統上下文、多核和線程處理以及緩存考慮。

需要一種集成方法來提供設計為以良好協調的方式工作并以硬件和軟件團隊都熟悉的方式呈現信息的工具。軟件開發人員必須能夠使用他們用來開發將在 FPGA 原型和具有集成技術的最終芯片上運行的應用程序所利用的相同本地工具更早地與硬件進行交互。Mentor Embedded Platform 中提供了一種這樣的統一方法,它結合了 Mentor Graphics 的熟悉技術,例如使用 Vista 硬件調試和分析的虛擬原型設計以及用于軟件開發的 Sourcery CodeBench 集成開發環境 (IDE)。通過使用這個集成嵌入式平臺進行早期軟件開發,開發人員可以使用虛擬和仿真硬件進行性能分析,

這種跨學科的早期研究改進了設計硬件并加速了 SoC 和嵌入式系統的軟件調試和啟動。軟件開發人員和硬件工程師都同意這是朝著正確方向邁出的一步。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21798

    瀏覽量

    606064
  • 嵌入式
    +關注

    關注

    5094

    文章

    19178

    瀏覽量

    307732
  • soc
    soc
    +關注

    關注

    38

    文章

    4204

    瀏覽量

    219113
收藏 人收藏

    評論

    相關推薦

    Vitis里如何創建嵌入式軟件工程

    Vitis可以為異構平臺的應用實現加速。其實,Vitis也能完美的支持嵌入式軟件開發。下面以MicroZed單板為例,介紹在Vitis里如何創建嵌入
    的頭像 發表于 11-04 12:03 ?5613次閱讀
    Vitis里如何創建<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>工程

    嵌入式系統調試技巧

    調試與設計一樣是嵌入式系統不可或缺的一部分。兩者都可以正確地稱為同一枚硬幣的兩個面。考慮到物聯網領域嵌入式系統的最新發展,工程師在
    發表于 07-21 12:08 ?2250次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>的<b class='flag-5'>調試</b>技巧

    嵌入式系統的應用與設計

    ;nbsp;   當前的嵌入式系統設計的前沿應當就是嵌入式系統芯片(SOC)。
    發表于 10-15 16:25

    嵌入式系統的硬件平臺組成

    和DSP協處理器(也可內部集成),以完成高性能信號處理。  隨著計算機技術、微電子技術、應用技術的不斷發展及納米芯片加工工藝技術的發展,以微處理器為核心的集成多種功能的SoC系統芯片已
    發表于 06-20 15:25

    基于ARM的嵌入式系統軟件設計

    嵌入式軟件啟動代碼嵌入式軟件開發關鍵技術嵌入式實時操作系統
    發表于 03-25 15:03 ?203次下載
    基于ARM的<b class='flag-5'>嵌入式</b><b class='flag-5'>系統軟件</b>設計

    汽車嵌入式SoC系統的應用與發展

    汽車嵌入式SoC系統的應用與發展 嵌入式系統是泛計算領域的重要組成部分,是嵌入式對象宿主體系中
    發表于 10-26 14:08 ?1466次閱讀
    汽車<b class='flag-5'>嵌入式</b><b class='flag-5'>SoC</b><b class='flag-5'>系統</b>的應用與發展

    嵌入式系統的遠程調試

      1 基本方法   圖1(a)是傳統的嵌入式調試方法:主機PC通過串口與從機嵌入式系統相連,接收從嵌入式
    發表于 08-30 10:23 ?1050次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>的遠程<b class='flag-5'>調試</b>

    嵌入式系統U盤實時啟動技術

    本文給出了實現嵌入式實時系統優盤啟動嵌入式主機硬件結構、軟件協議棧以及主要程序流程,探討了實現嵌入式
    發表于 07-20 15:09 ?1764次閱讀

    嵌入式系統開發圣經

    本書內容主要包含嵌入式系統介紹、嵌入式Soc硬件系統概論、嵌入式
    發表于 03-22 16:30 ?5次下載

    嵌入式軟件是什么意思_嵌入式軟件的分類有哪些

    本文首先闡述嵌入式軟件的概念,其次介紹嵌入式軟件的特征,最后介紹
    發表于 08-31 15:54 ?1.6w次閱讀

    嵌入式軟件的開發流程_嵌入式軟件調試

    本文首先介紹嵌入式軟件的發展,其次闡述嵌入式軟件的開發流程,最后介紹
    發表于 08-31 16:02 ?6354次閱讀

    如何實現嵌入式系統遠程調試

    嵌入式系統隨著目前科技的發展,正逐步融入人們的生活中。對于嵌入式系統,我們應該有所了解。就專業人員而言,他們對嵌入式
    的頭像 發表于 11-22 11:55 ?5470次閱讀
    如何實現<b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>遠程<b class='flag-5'>調試</b>

    嵌入式系統軟件組成

    軟件固化存儲。在嵌入式系統中,操作系統和應用系統集成與計算機硬件系統中,
    發表于 10-20 12:36 ?4次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>的<b class='flag-5'>軟件</b>組成

    嵌入式系統筆記

    目錄第一講 簡單介紹第二講 嵌入式系統結構第三講 基于ARm架構的嵌入式微處理器?第四講 SOC第五講 嵌入式
    發表于 10-20 14:51 ?7次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>筆記

    嵌入式Linux專題(一)——嵌入式Linux系統構成及啟動流程

    本文簡單的介紹什么是嵌入式系統,以及嵌入式Linux的系統結構,并且簡單的介紹Linux的
    發表于 11-02 12:36 ?15次下載
    <b class='flag-5'>嵌入式</b>Linux專題(一)——<b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>系統</b>構成及<b class='flag-5'>啟動</b>流程
    柳江县| 天将娱乐城开户| 大发888注册送50| 宝胜| 网上百家乐官网哪里| 可以玩百家乐官网的博彩公司| 百家乐官网老是输| 好运来百家乐官网的玩法技巧和规则 | 百家乐投注技巧公式| 赌神网百家乐的玩法技巧和规则 | 百家乐赌场群| 大发888官方6222.| 绵阳市| 百家乐官网永利娱乐网| 百家乐怎么推算| 御匾会百家乐的玩法技巧和规则 | 上游棋牌大厅下载| 百家乐官网注册送彩金平台| 百家乐官网最好投| 天天百家乐的玩法技巧和规则| 大发888娱乐城 17| 百家乐官网好多假网站| 金樽百家乐官网的玩法技巧和规则 | 百家乐官网桌子定制| 七胜百家乐赌场娱乐网规则| 大哥大百家乐的玩法技巧和规则| 网上赌博网址| 百家乐官网游戏试| 百家乐赌场现金网| 赌场游戏| 香港六合彩开码| 百家乐官网中庄闲比例| 百家乐开发软件| 皇冠走地| 百家乐官网网上赌场| 威尼斯人娱乐网注册网址| 威盈| 瑞士百家乐官网的玩法技巧和规则 | 合肥太阳城在哪| 光山县| 菲律宾百家乐试玩|