精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

使用嵌入式代碼生成器檢查復雜性

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Lucio Di Jasio ? 2022-06-29 14:44 ? 次閱讀

Raspberry Pi 產品線是一款具有無線連接功能的 10 美元個人計算機。對于業余愛好者、制造商、修補匠、黑客,以及,是的,我們中為數不多的真正努力設計“真正的”電子產品的人來說,這是多么美好的時光啊!

盡管 Raspberry Pi 的“通用計算”區別和微控制器MCU) 的“嵌入式”分類存在細微差別,但兩者的共同目標是為開發人員“控制復雜性”同時“吸引新手用戶”。每種類型的平臺都提供免費軟件工具,包括集成開發環境 (IDE)、編譯器、鏈接器、模擬器、調試器以及或多或少的開放中間件和操作系統 (OS)。兩者都嚴重依賴于相似的(如果不相同的話)基于 GNU 的工具鏈。在中間件級別,一旦較低(直至金屬)驅動程序層被抽象,開源選項再次非常相似。

盡管他們的使命是通過降低復雜性來支持開發人員,但是文檔膨脹的問題在雙方都很明顯。一個完美的例子是基于 PIC 架構的小型 8 位 MCU,PIC16F1619。PIC16F1619 MCU 用于控制小型電器,為此,它在 20 引腳封裝中僅包含 16 kB 閃存、12 個數字外設接口和大約同樣多的模擬支持模塊,但其數據表跨越 650 頁(在添加之前表征數據、圖表和圖形)。PIC16F1619 上提供的外設(例如信號測量定時器 (SMT))需要多達 50 頁,這幾乎是描述實際 PIC 內核及其整個指令集所需的頁數的兩倍。

Raspberry Pi 方面的問題類似,只是按比例放大(高達 10 倍)。這里有幾個數據表需要考慮,每個數據表只記錄片上系統 (SoC) 的一個組件,例如外圍設備、GPU 等。僅內核就占據了 750 多頁。

不能指望沒有人會閱讀或簡單地跟上如此大量的信息。特別是嵌入式開發人員總是承受著巨大的壓力,要在更短的時間內交付應用程序以實現最快的上市時間。

迷失在嵌入式軟件架構的層層中

解決信息泛濫的一種常見解決方案是使用分層架構和抽象硬件細節的標準化外圍庫對應用程序進行分區。這些層可以表示為一個整齊的堆棧,“應用程序”位于硬件抽象層 (HAL) 的頂部。如果需要,可以進一步細化堆棧以識別 HAL 和其上的中間件層,以實現常見的服務/功能,例如網絡、文件系統和圖形用戶界面 (GUI)。

該軟件架構模型源自“計算”世界,適用于大多數通用情況。不幸的是,它在嵌入式應用程序中存在兩個基本缺點:

1. 分層架構簡化了文檔膨脹問題,只要關注中間件層提供的標準功能即可。在應用范圍的低端,中間件層非常薄,如果存在的話,結果主要是混淆。因此,開發人員必須依靠大型應用程序編程接口 (API) 形式的 HAL 文檔,這是一個同樣龐大的材料體,可以跨越數千頁,而不會真正揭示設備的細節。當出現問題時,開發人員會陷入困境或被迫深入研究大量外來代碼。

2. HAL 層為標準中間件服務提供了巨大的支持,但由于其剛性性質,通常最終會抹去特定設備的獨特差異化功能。否則,這些功能可以為特定應用程序提供技術優勢,并且可能是首先選擇特定設備的原因。

代碼生成器:讓機器做它最擅長的事情!

由于堆疊的軟件架構會導致性能損失和獨特功能的扁平化,現代 MCU 開發人員在使用標準化 HAL 時獲得的收益會減少。然而,強調快速開發的嵌入式控制市場的新一代代碼生成器為解決這個難題提供了一條出路。

代碼配置器/生成器做機器最擅長的事情,顯著縮短或消除重復和容易出錯的搜索數據表以配置硬件外圍設備和構建 HAL 的過程。用戶還可以從單個代碼配置器界面了解特定的硬件外圍功能,從而完全減少對數據表的需求。因此,HAL 成為嵌入式開發項目的靈活組成部分,可以在工程師優化應用程序性能時快速且頻繁地重新生成。

代碼配置器工具的顯著特點包括:

· 與流行的 IDE 完全集成,允許工具(和用戶)了解項目上下文(涉及的型號/部件號、使用中的中間件庫等)

· 支持獨特而復雜的外圍設備,例如前面提到的 SMT。例如,SMT 可以在一個頁面/對話框中直觀地呈現給用戶,其中包括一些直觀的滾動列表和復選框(圖 2)。

· 一個模板引擎,將用戶配置轉換為一小組完全定制的函數,減少必須傳遞給每個函數的參數數量,并保證大多數硬件抽象在編譯時靜態執行。生成的 API 是最小的,需要學習的功能很少,并利用一致和直觀的命名約定。這提高了性能和代碼密度(代碼示例 1)。

· 由非常短的(C 語言)源文件組成的輸出,用戶可以完全檢查,提供學習和手動優化的機會?,F代代碼配置器以靈活的方式將生成的代碼與用戶代碼混合在一起,從而保持完整性并允許充分利用高級硬件功能。

poYBAGK79OaAYSddAAEt40zaQYU538.png

【圖2 | 此處顯示的是 Microchip Technology, Inc. 的 MPLAB 代碼配置器 (MCC) 中的信號測量定時器 (SMT) 選項的屏幕截圖。

pYYBAGK79O6AHfHpAAMWWwlgwfc288.png

[代碼示例 1 | SMT 外圍源文件 (smt1.c) 的此示例部分顯示了 MCC 生成的代碼的節儉性。]

一旦外圍配置完成,開發人員可以立即專注于應用程序。使用代碼生成器,嵌入經典的“Hello, World!” 示例(總是轉換為閃爍的 LED)變成了兩行代碼練習。

files-aHViPTYzODY3JmNtZD1pdGVtZWRpdG9yaW1hZ2UmZmlsZW5hbWU9aXRlbWVkaXRvcmltYWdlXzU5NzY1YzQ3NDQ3OWMucG5nJnZlcnNpb249MDAwMCZzaWc9ZTAyZTUyYTlkYjcwNzMxM2VlZjAwM2UxM2JhYzhiNjE253D

[代碼示例 2 | 創建“Hello, World!”只需要兩行代碼。使用 MCC 的應用程序。]

在《In 10 Lines of Code》一書中可以找到其他 20 個有效使用快速開發工具的實際示例。

審核編輯:郭婷

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

    關注

    242

    文章

    23138

    瀏覽量

    658513
  • mcu
    mcu
    +關注

    關注

    146

    文章

    16993

    瀏覽量

    350318
  • soc
    soc
    +關注

    關注

    38

    文章

    4122

    瀏覽量

    217946
收藏 人收藏

    評論

    相關推薦

    嵌入式開發常見問題排查

    嵌入式開發問題排查很多人認為嵌入式開發很難,主要是因為在這個過程中常常會遇到各式各樣的問題。這些問題的復雜性和多樣使得許多人感到困惑和無所適從。然而,如果將這些問題逐一拆解,實際上大
    的頭像 發表于 09-22 08:04 ?267次閱讀
    <b class='flag-5'>嵌入式</b>開發常見問題排查

    使用C2000?嵌入式模式生成器(EPG)進行設計

    電子發燒友網站提供《使用C2000?嵌入式模式生成器(EPG)進行設計.pdf》資料免費下載
    發表于 09-14 10:13 ?0次下載
    使用C2000?<b class='flag-5'>嵌入式</b>模式<b class='flag-5'>生成器</b>(EPG)進行設計

    ARM MCU嵌入式開發 | 基于國產GD32F10x芯片+嵌入的開始

    嵌人系統的分類方法是依照系統主控制芯片的復雜性進行分類??梢苑譃樾?b class='flag-5'>嵌入式系統、中等規模嵌入式系統、復雜
    發表于 09-09 14:48

    Freepik攜手Magnific AI推出AI圖像生成器

    近日,設計資源巨頭Freepik攜手Magnific AI,共同推出了革命的AI圖像生成器——Freepik Mystic,這一里程碑的發布標志著AI圖像創作領域邁入了一個全新的高度
    的頭像 發表于 08-30 16:23 ?1085次閱讀

    TSMaster 測試報告生成器操作指南

    用戶在基于TSMaster軟件開發測試用例時,或需要使用TSMaster生成HTML報告時,需要使用TSMaster測試報告生成器。1Test_Report說明Test_Report是目前
    的頭像 發表于 08-03 08:21 ?404次閱讀
    TSMaster 測試報告<b class='flag-5'>生成器</b>操作指南

    軟件架構搞好了,還用擔心代碼可讀差?

    :硬件多樣嵌入式系統常常面臨不同硬件平臺和設備的多樣,需要一個靈活的軟件架構來適應這些差異。軟件復雜性:隨著嵌入式系統功能的不斷增加,
    的頭像 發表于 06-14 08:10 ?246次閱讀
    軟件架構搞好了,還用擔心<b class='flag-5'>代碼</b>可讀<b class='flag-5'>性</b>差?

    飛凌嵌入式ElfBoard ELF 1板卡-在線二維碼生成器

    在線二維碼生成器允許用戶將文本、網址、圖片或其他數據轉換為二維碼形式。二維碼是一種特殊類型的條形碼,它可以通過掃描來快速識別和讀取信息。在線二維碼生成器使用特定的算法將這些信息編碼成二維碼,用戶可以
    發表于 04-24 17:00

    Minitab 交互表格生成器

    生成器
    MinitabUG
    發布于 :2024年04月03日 15:58:54

    RL78的代碼生成器發布說明

    電子發燒友網站提供《RL78的代碼生成器發布說明.pdf》資料免費下載
    發表于 01-30 09:48 ?0次下載
    RL78的<b class='flag-5'>代碼</b><b class='flag-5'>生成器</b>發布說明

    MicroClock可編程 時鐘生成器5X1503數據手冊

    電子發燒友網站提供《MicroClock可編程 時鐘生成器5X1503數據手冊.pdf》資料免費下載
    發表于 01-14 10:56 ?0次下載
    MicroClock可編程 時鐘<b class='flag-5'>生成器</b>5X1503數據手冊

    HKA5278 128音符旋律生成器一般說明

    電子發燒友網站提供《HKA5278 128音符旋律生成器一般說明.pdf》資料免費下載
    發表于 01-10 09:09 ?0次下載

    單片機代碼自動生成器程序

    和輸入/輸出設備的芯片。它通常用于嵌入式系統中,能夠完成一系列特定的任務。開發人員編寫的單片機代碼負責指導單片機執行相應的任務。然而,編寫單片機代碼是一項繁瑣而容易出錯的工作,代碼
    的頭像 發表于 01-08 14:12 ?2907次閱讀

    基于功能安全的汽車嵌入式軟件單元驗證技術研究

    隨著汽車嵌入式軟件功能的不斷疊加,軟件復雜性不斷提升,對汽車嵌入式軟件的安全提出了更高要求,基于功能安全的嵌入式軟件開發和測試已成為汽車行
    的頭像 發表于 01-07 11:27 ?1009次閱讀
    基于功能安全的汽車<b class='flag-5'>嵌入式</b>軟件單元驗證技術研究

    TSMaster報文發送的信號生成器操作說明

    信號生成器功能是TSMaster分析中的報文發送模塊。信號生成器用于發送和配置每個CAN/LIN信號的值變化行為,簡而言之,這是一個可以控制和調整CAN/LIN信號值的功能。我們可選擇的信號生成器
    的頭像 發表于 12-23 08:21 ?930次閱讀
    TSMaster報文發送的信號<b class='flag-5'>生成器</b>操作說明

    嵌入式開發學習的十三法則分享

    有限性法則 嵌入式計算不僅需要網絡快速、一致的計算,而 且也要求系統能夠井然有序地將其執行代碼和數 據,存儲在一個“ 共同” 的“ 狹小” 的空間內。 四、結構法則 對于嵌入式
    發表于 12-21 06:32