在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用嵌入式代碼生成器檢查復(fù)雜性

星星科技指導(dǎo)員 ? 來源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Lucio Di ? 2022-06-09 11:05 ? 次閱讀

Raspberry Pi 產(chǎn)品線于 2017 年 2 月通過 Raspberry Pi Zero W進(jìn)行了擴(kuò)展,這是一款 10 美元的具有無線連接功能的個(gè)人計(jì)算機(jī)。對于業(yè)余愛好者、制造商、修補(bǔ)匠、黑客,以及,是的,我們中為數(shù)不多的真正努力設(shè)計(jì)“真正的”電子產(chǎn)品的人來說,這是多么美好的時(shí)光啊!

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

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

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

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

迷失在嵌入式軟件架構(gòu)的層層中

解決信息泛濫的一種常見解決方案是使用分層架構(gòu)和抽象硬件細(xì)節(jié)的標(biāo)準(zhǔn)化外圍庫對應(yīng)用程序進(jìn)行分區(qū)。這些層可以表示為一個(gè)整齊的堆棧,“應(yīng)用程序”位于硬件抽象層 (HAL) 的頂部。如果需要,可以進(jìn)一步細(xì)化堆棧以識別 HAL 和其上的中間件層,以實(shí)現(xiàn)常見的服務(wù)/功能,例如網(wǎng)絡(luò)、文件系統(tǒng)和圖形用戶界面 (GUI)(圖 1)。

poYBAGKhZBuAB5dAAABOG8pCf5s001.png

【圖1 | 此處顯示的是嵌入式應(yīng)用程序的軟件堆棧的表示,可以通過分離驅(qū)動程序和電路板支持層來進(jìn)一步細(xì)化。]

該軟件架構(gòu)模型源自“計(jì)算”世界,適用于大多數(shù)通用情況。不幸的是,它在嵌入式應(yīng)用程序中存在兩個(gè)基本缺點(diǎn):

只要關(guān)注中間件層提供的標(biāo)準(zhǔn)功能,分層架構(gòu)就可以簡化文檔膨脹問題。在應(yīng)用范圍的低端,中間件層非常薄,如果存在的話,結(jié)果主要是混淆。因此,開發(fā)人員必須依靠大型應(yīng)用程序編程接口 (API) 形式的 HAL 文檔,這是一個(gè)同樣龐大的材料體,可以跨越數(shù)千頁,而不會真正揭示設(shè)備的細(xì)節(jié)。當(dāng)出現(xiàn)問題時(shí),開發(fā)人員會陷入困境或被迫深入研究大量外來代碼。

HAL 層為標(biāo)準(zhǔn)中間件服務(wù)提供了巨大的支持,但由于其嚴(yán)格的性質(zhì),通常最終會抹去特定設(shè)備的獨(dú)特差異化功能。否則,這些功能可以為特定應(yīng)用程序提供技術(shù)優(yōu)勢,并且可能是首先選擇特定設(shè)備的原因。

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

由于堆疊的軟件架構(gòu)會導(dǎo)致性能損失和獨(dú)特功能的扁平化,現(xiàn)代 MCU 開發(fā)人員在使用標(biāo)準(zhǔn)化 HAL 時(shí)獲得的收益會減少。然而,強(qiáng)調(diào)快速開發(fā)的嵌入式控制市場的新一代代碼生成器為解決這個(gè)難題提供了一條出路。

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

代碼配置器工具的顯著特點(diǎn)包括:

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

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

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

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

pYYBAGKhZBWATcC5AADtmaIGywg199.png

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

poYBAGKhZA6AWVUsAAMHJ88JxWU091.png

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

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

pYYBAGKhZAiAA3USAAAe4I6dglE111.png

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

在《In 10 Lines of Code》[5] 一書中可以找到其他 20 個(gè)有效使用快速開發(fā)工具的實(shí)際示例。

對抗復(fù)雜性

當(dāng)我在 Pi Zero W 上觀看 Eben Upton 的視頻公告時(shí),我不禁想起了我的早年時(shí)光。那時(shí)是80年代中期。我買不起 BBC 電腦或豪華的 Amiga,但我確實(shí)把所有的錢都花在了 Sinclair ZX Spectrum 上。Eben 讓計(jì)算“人人都買得起”的努力真的引起了我的共鳴。

畢竟,將一臺功能強(qiáng)大的 PC 擠進(jìn)一個(gè) 6 厘米 x 3 厘米的微型印刷電路板 (PCB) 中,所達(dá)到的創(chuàng)紀(jì)錄的低價(jià)點(diǎn)仍然讓我感到驚訝。我經(jīng)常想知道,是否正是 Spectrum 的節(jié)儉和諸多限制教會我更深入地研究電子產(chǎn)品并讓我愛上了那個(gè)奇怪的機(jī)器世界——今天我們稱之為嵌入式的軟件和硬件之間的邊界。

隨著小型 MCU 成長為小型片上系統(tǒng) (SoC),或者 PC 縮小為 Raspberry Pi,復(fù)雜性不一定是技術(shù)進(jìn)步的必然結(jié)果。現(xiàn)代代碼配置器可以幫助我們增強(qiáng)我們的軟件開發(fā)過程,并最終恢復(fù)我們對快速增長的可用功能的控制。

是呢環(huán)保局:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • pcb
    pcb
    +關(guān)注

    關(guān)注

    4354

    文章

    23430

    瀏覽量

    406948
  • soc
    soc
    +關(guān)注

    關(guān)注

    38

    文章

    4348

    瀏覽量

    221760
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3288

    瀏覽量

    117277
收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    EB Tresos狀態(tài)顯示無法運(yùn)行生成器是什么原因?qū)е碌模?/a>

    我正在嘗試集成 MCAL 包,但在生成過程中收到如下驗(yàn)證錯誤:“無法為模塊”Dio_TS_T40D2M20I0R0“運(yùn)行生成器
    發(fā)表于 04-02 08:06

    高可靠嵌入式主板設(shè)計(jì)

    嵌入式系統(tǒng)已廣泛應(yīng)用于各個(gè)領(lǐng)域,從航空航天、醫(yī)療設(shè)備到工業(yè)控制和智能家居,其應(yīng)用范圍不斷擴(kuò)展。隨著應(yīng)用場景的日益復(fù)雜和關(guān)鍵,嵌入式系統(tǒng)的可靠變得至關(guān)重要。
    的頭像 發(fā)表于 03-25 15:11 ?404次閱讀
    高可靠<b class='flag-5'>性</b><b class='flag-5'>嵌入式</b>主板設(shè)計(jì)

    嵌入式系統(tǒng)中的代碼優(yōu)化與壓縮技術(shù)

    以及資源利用效率。 一、代碼優(yōu)化的重要 嵌入式設(shè)備往往資源有限,如內(nèi)存空間小、處理器性能相對較弱。高效的代碼能夠在有限資源下實(shí)現(xiàn)更強(qiáng)大的功能。以智能家居中的溫度傳感器節(jié)點(diǎn)為例,
    發(fā)表于 02-26 15:00

    Python中的迭代器與生成器

    Python迭代器與生成器 列表生成 列表生成也叫做列表推導(dǎo),它本身還是列表,只不過它是根
    的頭像 發(fā)表于 02-20 10:43 ?327次閱讀

    開源隨機(jī)數(shù)生成器庫OpenRNG助力實(shí)現(xiàn)移植到Arm平臺時(shí)的最佳性能

    OpenRNG 實(shí)現(xiàn)了多種生成器和分布方式。生成器算法可生成“看似隨機(jī)”并具有某些統(tǒng)計(jì)特性的序列,我們將在下文進(jìn)行討論。分布方式會將序列映射到常見的概率分布概念,如高斯分布或二項(xiàng)分布
    的頭像 發(fā)表于 02-08 09:24 ?1167次閱讀
    開源隨機(jī)數(shù)<b class='flag-5'>生成器</b>庫OpenRNG助力實(shí)現(xiàn)移植到Arm平臺時(shí)的最佳性能

    超詳細(xì)!FMU生成器用戶手冊來啦~

    FMU生成器是TSMaster中用于將模型打包生成FMU文件的一個(gè)工具,目前支持FMI3.0和FMI2.0版本,F(xiàn)MU類型僅支持Co-Simulation(CS),即聯(lián)合仿真FMU。本文將介紹FMU
    的頭像 發(fā)表于 01-17 20:02 ?755次閱讀
    超詳細(xì)!FMU<b class='flag-5'>生成器</b>用戶手冊來啦~

    如何提高嵌入式代碼質(zhì)量?

    。 3. 嵌入式操作系統(tǒng)的使用:選擇和配置合適的嵌入式操作系統(tǒng)(如FreeRTOS、uC/OS等),能夠提供任務(wù)調(diào)度、內(nèi)存管理和通信支持,減少開發(fā)復(fù)雜度和提高系統(tǒng)穩(wěn)定性。 強(qiáng)調(diào)代碼
    發(fā)表于 01-15 10:48

    EE-322:面向SHARC處理器的專家代碼生成器

    電子發(fā)燒友網(wǎng)站提供《EE-322:面向SHARC處理器的專家代碼生成器.pdf》資料免費(fèi)下載
    發(fā)表于 01-07 14:04 ?0次下載
    EE-322:面向SHARC處理器的專家<b class='flag-5'>代碼</b><b class='flag-5'>生成器</b>

    嵌入式開發(fā)常見問題排查

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

    使用C2000?嵌入式模式生成器(EPG)進(jìn)行設(shè)計(jì)

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

    嵌入式系統(tǒng)的未來趨勢有哪些?

    智能家居領(lǐng)域,嵌入式系統(tǒng)可以集成語音識別和自然語言處理技術(shù),去實(shí)現(xiàn)智能家電的語音控制。 2. 更強(qiáng)大的處理能力 在未來的嵌入式系統(tǒng)將具備更加強(qiáng)大的處理能力,以滿足日益變得復(fù)雜的計(jì)算需求。這包括采用多核
    發(fā)表于 09-12 15:42

    ARM MCU嵌入式開發(fā) | 基于國產(chǎn)GD32F10x芯片+嵌入的開始

    嵌人系統(tǒng)的分類方法是依照系統(tǒng)主控制芯片的復(fù)雜性進(jìn)行分類。可以分為型嵌入式系統(tǒng)、中等規(guī)模嵌入式系統(tǒng)、復(fù)雜
    發(fā)表于 09-09 14:48

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

    近日,設(shè)計(jì)資源巨頭Freepik攜手Magnific AI,共同推出了革命的AI圖像生成器——Freepik Mystic,這一里程碑的發(fā)布標(biāo)志著AI圖像創(chuàng)作領(lǐng)域邁入了一個(gè)全新的高度
    的頭像 發(fā)表于 08-30 16:23 ?1504次閱讀

    TSMaster 測試報(bào)告生成器操作指南

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

    軟件架構(gòu)搞好了,還用擔(dān)心代碼可讀差?

    :硬件多樣嵌入式系統(tǒng)常常面臨不同硬件平臺和設(shè)備的多樣,需要一個(gè)靈活的軟件架構(gòu)來適應(yīng)這些差異。軟件復(fù)雜性:隨著嵌入式系統(tǒng)功能的不斷增加,
    的頭像 發(fā)表于 06-14 08:10 ?525次閱讀
    軟件架構(gòu)搞好了,還用擔(dān)心<b class='flag-5'>代碼</b>可讀<b class='flag-5'>性</b>差?
    主站蜘蛛池模板: 欧美性free | 日本成人免费 | 一级一黄在线观看视频免费 | 国产三级观看久久 | 天天拍夜夜操 | 亚洲精品卡1卡二卡3卡四卡 | vr性资源在线观看 | 久月婷婷 | 99久久香蕉国产综合影院 | 操白虎美女 | 亚洲成a人片在线观看导航 亚洲成a人片在线观看尤物 | 仙踪林欧美另类视频 | 国产精品美女一区二区三区 | 夜夜夜夜操 | 亚洲国产精品自在现线让你爽 | 天天射天天草 | 91精品国产色综合久久不卡蜜 | 国产美女一级ba大片免色 | 天天操天天操天天操天天操 | 国产美女视频黄a视频免费全过程 | 永久黄网站色视频免费 | 人人草人人爱 | 成人看的一级毛片 | 在线中文字幕一区 | av大片| 3344在线观看永久免费 | 欧美刺激午夜性久久久久久久 | 黄色爽视频 | 欧美三级 欧美一级 | 啪视频免费 | 国产午夜小视频 | 亚洲国产激情在线一区 | 护士一级aaaaaa毛片 | 国产色婷婷精品免费视频 | 国产精品资源网站在线观看 | 末发育娇小性色xxxxx视频 | 欧美视频精品一区二区三区 | 福利一级片| 天堂黄网 | 国内色视频| 天堂社区在线观看 |