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

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

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

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

關(guān)于利用Simulink模型自動生成C代碼的相關(guān)研究和分析

MATLAB ? 來源:djl ? 2019-09-17 16:54 ? 次閱讀

Simulink 模型的自動代碼生成?

簡單來說,在我們的 “大” 項目中,需要實現(xiàn)很多算法,其中比如 myfilter。

關(guān)于利用Simulink模型自動生成C代碼的相關(guān)研究和分析

現(xiàn)在不手寫C了,而是搭建Simulink框圖。對那些算法比C語法熟悉的人來說,這是個福音。

算法實現(xiàn)方便,測試方便

關(guān)于利用Simulink模型自動生成C代碼的相關(guān)研究和分析

Simulink 模型的測試驗證非常重要,然而這里不討論。

總之,算法沒問題之后,通過自定代碼生成工具Coder“翻譯”成C代碼,跟手寫的一樣.c.h,還可以控制函數(shù)原型、數(shù)據(jù)定義、文件結(jié)構(gòu)、甚至注釋......

關(guān)于利用Simulink模型自動生成C代碼的相關(guān)研究和分析

把自動生成的源文件集成到原來的項目文件中。

關(guān)于利用Simulink模型自動生成C代碼的相關(guān)研究和分析

由各種編譯器,把它們編譯成不同的可執(zhí)行文件,最后運行在不同的環(huán)境。

比如這里就是通過 VS 編譯成 exe,很簡單吧。

關(guān)于利用Simulink模型自動生成C代碼的相關(guān)研究和分析

所以

對于代碼生成的任務(wù)來說

重點在如何生成自己想要的C代碼

但經(jīng)常會有人問,Coder支持哪些板子?

看下面這張嵌入式軟件的偽代碼的簡單示意圖。

Simulink 算法模型通過 Coder 生成的是藍色部分,標準C;跟硬件打交道的底層驅(qū)動黑色部分,是手寫代碼。

既然叫Coder,所以本質(zhì)上,它的本職工作就是Simulink模型到C代碼這個步驟,就結(jié)束了。至于C要通過什么編譯器跑到什么硬件上,跟Coder沒多大關(guān)系。

關(guān)于利用Simulink模型自動生成C代碼的相關(guān)研究和分析

那么

為什么會有人問這個問題呢?

Build Process

Coder除了把模型翻譯成代碼的本職工作以外,還額外張羅了一些Build的任務(wù),把C代碼變成可執(zhí)行文件。

為什么說張羅,而不說完成呢,因為Coder本身并沒有編譯的功能,它會后臺調(diào)用你安裝了的編譯器來實現(xiàn) ,看下圖。

關(guān)于利用Simulink模型自動生成C代碼的相關(guān)研究和分析

比如默認下,Coder會調(diào)用VC,使用它內(nèi)置的相應(yīng)的main文件模板,然后編譯。這就是為什么每次生成代碼,在當(dāng)前目錄下就會 “莫名其妙” 的生成一個exe程序。如果你不喜歡,那也可以 “Generate code only”。

如果是上面沒列的編譯器,自己也可以把它集成進來,比如構(gòu)造個Template makefile,描述怎么編譯鏈接變成可執(zhí)行文件。

關(guān)于利用Simulink模型自動生成C代碼的相關(guān)研究和分析

好像還是沒解釋所謂硬件支持的問題?

I/O Drive blocks

剛才說的是后臺可以調(diào)用編譯器,構(gòu)造main文件,生成了可執(zhí)行文件,下載到硬件。

在很久很久以前,代碼生成工具為一些板卡提供了I/O驅(qū)動模塊庫,TIC2000/5000/6000,等等。

然后可以做什么?

看下面這張圖,兩端的In/Out就換成圖中的硬件驅(qū)動模塊。舉例的板卡的驅(qū)動庫我沒裝,暫時拿Arduino的庫示意一下,提供了很多下圖中紅框類似的模塊。

關(guān)于利用Simulink模型自動生成C代碼的相關(guān)研究和分析

那么,中間用Simulink/Stateflow搭好算法,兩頭的輸入輸出端口連接上這些硬件驅(qū)動模塊,后臺又做好了編譯工具鏈的支持,就可以實現(xiàn)傳說中的支持某款硬件:一鍵下載到硬件上運行了。

如果使用這種方式來開發(fā)產(chǎn)品,這樣看上去感覺真的很美好~

但是,目測,要做的額外的工作也非常多,所有的要用到的驅(qū)動都需要包裹成Simulink Block的形式,要自動生成所需要的main文件,等等,這也是不小的工作量。

做產(chǎn)品開發(fā),使用哪種 “集成” 方式,仁者見仁。

現(xiàn)在就Coder工具來說,這部分 “對硬件的支持” 從Coder里剝離了,變成了免費的Hardware Support Package下載。用來做做算法的原型測試也不錯。

關(guān)于利用Simulink模型自動生成C代碼的相關(guān)研究和分析

另一個經(jīng)常會問的問題:

代碼生成工具的效率怎么樣?

雖然Coder習(xí)慣叫代碼生成工具,但它實際上是個代碼翻譯工具,把Simulink模型“翻譯”成C代碼。

其實就跟金山詞霸,谷歌翻譯一樣,基于你寫的中文翻譯成英文。

“今日天朗氣清,看似極好的日子,私心想若能約上三五好友,結(jié)伴出游,陶冶性情,便是再好不過了?!?/p>

再厲害的谷歌翻譯,也翻譯不出這句人話:“今天不想上班。”

所以對于Coder來說,也是一樣,它的目標是C代碼如實的反映出你搭建的Simulink模型結(jié)構(gòu)所表達的信息。在考慮生成的C代碼效率如何時,也不能忽略Simulink模型搭建的效率如何?

關(guān)于利用Simulink模型自動生成C代碼的相關(guān)研究和分析

Simulink Coder生成的C代碼主要用于加速桌面仿真、快速原型、以及HIL測試(被控對象模型也要生成C代碼)。Embedded Coder提供了更多的自定義的途徑,生成高效率的嵌入式C代碼。

但其實,對于我們用戶來說,這些Coder都是 “看不見” 的,沒有所謂打開Embedded Coder工具箱的說法。

我們只需要關(guān)心選擇哪一個系統(tǒng)目標文件(System tareget file)。罷了,下圖。“無責(zé)任瞎猜一句”,為什么這些后綴名是.tlc呢?因為Coder里面干翻譯這個活的叫TargetLanguageCompiler。

紅框外的.tlc只是針對各自不同的目標稍作了些修改,完成一些額外的事。比如ert_shrlib.tlc,多做了一個工作,把生成的.c.h變成.dll。

這一個小節(jié)說人話就是:選擇ert.tlc。

關(guān)于利用Simulink模型自動生成C代碼的相關(guān)研究和分析

如果對于一些小算法你有什么高效率的實現(xiàn),也可以添加進來。比如說查表,比說說針對某個特殊器件的四則運算,到時候Coder就會替換你的實現(xiàn)方式。

關(guān)于利用Simulink模型自動生成C代碼的相關(guān)研究和分析

當(dāng)然,一些通用的提高代碼效率的方法,還是可以試試。讓 Coder 基于它的 “經(jīng)驗”,給你一些通用的建議:

關(guān)于利用Simulink模型自動生成C代碼的相關(guān)研究和分析

所以,對于代碼生成的任務(wù)來說,除了選擇ert.tlc,點個按鈕之外,再考慮下數(shù)據(jù)管理、代碼結(jié)構(gòu)、文件結(jié)構(gòu)......

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

    關(guān)注

    5142

    文章

    19561

    瀏覽量

    315399
  • C代碼
    +關(guān)注

    關(guān)注

    1

    文章

    90

    瀏覽量

    14687
收藏 人收藏

    評論

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

    如何實現(xiàn)MC33774IC在Simulink環(huán)境中使用基于模型的設(shè)計?

    我想熟悉如何實現(xiàn)MC33774IC 在 Simulink 環(huán)境中使用基于模型的設(shè)計。 盡管 MATLAB 提供了一些示例文件,但它們似乎是最終版本。要更深入地了解如何配置MC33774,我正在尋找一個教程,該教程解釋了如何從頭開始在 S
    發(fā)表于 04-10 08:05

    STM32CubeMX用于STM32配置和初始化C代碼生成

    電子發(fā)燒友網(wǎng)站提供《STM32CubeMX用于STM32配置和初始化C代碼生成.pdf》資料免費下載
    發(fā)表于 02-26 17:32 ?658次下載

    Simulink與 Simscape的結(jié)合使用

    。用戶可以利用 Simulink 進行系統(tǒng)建模、仿真、測試和驗證,以及生成代碼。 Simscape 簡介 Simscape 是一個用于創(chuàng)建基于物理的
    的頭像 發(fā)表于 12-12 09:31 ?1592次閱讀

    Simulink與 MATLAB 的結(jié)合使用 Simulink中的信號處理方法

    在工程和科學(xué)研究中,信號處理是一個重要的領(lǐng)域,涉及到信號的采集、分析、處理和生成。MATLAB 提供了豐富的信號處理工具箱,而 Simulink 提供了一個直觀的圖形界面,使得復(fù)雜的信
    的頭像 發(fā)表于 12-12 09:25 ?1349次閱讀

    Simulink模型仿真與分析技巧

    1. 模型構(gòu)建基礎(chǔ) 1.1 理解系統(tǒng)需求 在開始構(gòu)建模型之前,明確系統(tǒng)的需求和目標是至關(guān)重要的。這包括了解系統(tǒng)的動態(tài)特性、輸入輸出關(guān)系以及預(yù)期的性能指標。 1.2 選擇合適的模塊 Simulink
    的頭像 發(fā)表于 12-12 09:23 ?2260次閱讀

    Simulink自定義模塊開發(fā)教程 Simulink 在控制系統(tǒng)中的應(yīng)用

    在控制系統(tǒng)的設(shè)計和分析中,Simulink 提供了一個強大的工具集,允許工程師通過圖形化界面快速構(gòu)建和測試復(fù)雜的系統(tǒng)模型。然而,Simulink 的標準庫可能不包含所有特定的功能,這時
    的頭像 發(fā)表于 12-12 09:21 ?2011次閱讀

    NVIDIA推出全新生成式AI模型Fugatto

    NVIDIA 開發(fā)了一個全新的生成式 AI 模型利用輸入的文本和音頻,該模型可以創(chuàng)作出包含任意的音樂、人聲和聲音組合的作品。
    的頭像 發(fā)表于 11-27 11:29 ?754次閱讀

    探索設(shè)計稿自動生成Flutter代碼的技術(shù)方案

    的工具和方法,最后嘗試大模型生成flutter代碼在項目中的實踐。 一、美團的探索 美團在2021年3月25日發(fā)表了一篇關(guān)于設(shè)計稿自動
    的頭像 發(fā)表于 11-08 10:09 ?1627次閱讀
    探索設(shè)計稿<b class='flag-5'>自動</b><b class='flag-5'>生成</b>Flutter<b class='flag-5'>代碼</b>的技術(shù)方案

    如何自動生成verilog代碼

    介紹幾種自動生成verilog代碼的方法。
    的頭像 發(fā)表于 11-05 11:45 ?945次閱讀
    如何<b class='flag-5'>自動</b><b class='flag-5'>生成</b>verilog<b class='flag-5'>代碼</b>

    Matlab/Simulink/Stateflow建模開發(fā)及仿真測試

    matlab 模擬仿真 熟悉Matlab/Simulink/Stateflow建模開發(fā)及仿真測試,熟悉V模型開發(fā)流程。 熟悉自動代碼生成,能
    發(fā)表于 10-24 17:23

    AI大模型的最新研究進展

    AI大模型的最新研究進展體現(xiàn)在多個方面,以下是對其最新進展的介紹: 一、技術(shù)創(chuàng)新與突破 生成式AI技術(shù)的爆發(fā) : 生成式AI技術(shù)正在迅速發(fā)展,其強大的
    的頭像 發(fā)表于 10-23 15:19 ?1281次閱讀

    代碼解析工具與自動化流程圖生成解決方案

    ? 摘要:CasePlayer2是一款強大的源代碼解析工具,專門設(shè)計用于分析ANSI CCC++以及匯編語言源
    的頭像 發(fā)表于 10-10 13:40 ?817次閱讀

    新的 MathWorks 硬件支持包支持從 MATLAB 和 Simulink 模型到高通 Hexagon 神經(jīng)處理單元架構(gòu)的自動代碼生成

    ? 和 Simulink? 模型自動代碼生成流程。在提高數(shù)據(jù)準確度和標準合規(guī)性的同時,也提升開發(fā)人員的工作流效率。使用 MathWork
    的頭像 發(fā)表于 09-23 11:59 ?531次閱讀

    關(guān)于Makefile自動生成-autotools的使用

    的Makefile并非日常任務(wù),但遇見需要構(gòu)建大型軟件項目時,利用工具自動生成Makefile就顯得尤為關(guān)鍵。接下來,我們將重點介紹一款自動化構(gòu)建工具——Autoto
    的頭像 發(fā)表于 07-25 15:50 ?1768次閱讀
    <b class='flag-5'>關(guān)于</b>Makefile<b class='flag-5'>自動</b><b class='flag-5'>生成</b>-autotools的使用

    【《大語言模型應(yīng)用指南》閱讀體驗】+ 基礎(chǔ)篇

    這個程序不需要程序員編寫,而是由計算機自動生成。因此,人工編程方法依賴程序員思考的規(guī)則,而自動編程是計算機算法通過分析數(shù)據(jù)自行創(chuàng)建規(guī)則。 作者通過類比學(xué)生準備高考的過程來說明機器學(xué)習(xí)的
    發(fā)表于 07-25 14:33
    主站蜘蛛池模板: 天天爽夜夜爽精品视频一 | 我要看一级大片 | 精品国产免费观看一区高清 | 老色99久久九九精品尤物 | 日本网络视频www色高清免费 | 俄罗斯欧美色黄激情 | 国产精品天天看天天爽 | 免费在线黄网站 | 欧美黄色免费看 | 伊人三级| 五月激情五月婷婷 | 亚洲综合成人网在线观看 | 荡女妇边被c边呻吟久久 | 亚洲男人的天堂久久香蕉网 | 在线观看网站国产 | 校园 春色 欧美 另类 小说 | 一级做a爱片久久毛片 | 国产好深好硬好爽我还要视频 | 成人在线播放av | 很黄很暴力 很污秽的小说 很黄很黄叫声床戏免费视频 | 国产裸露片段精华合集链接 | 久久精品国产精品亚洲人人 | 高黄网站 | 日本二区免费一片黄2019 | 狠狠ri| 一区二区三区高清在线 | 五月婷婷在线视频 | 涩多多在线观看 | 亚洲伊人网站 | 女人被狂躁视频网站免费 | 国产精品激情综合久久 | 亚洲国产七七久久桃花 | 色综合五月婷婷 | 久久综合九色欧美综合狠狠 | 国产大乳美女挤奶视频 | 免费日本黄色 | 亚洲一级色 | 国产农村妇女毛片精品久久久 | 天天干天天操天天爱 | 欧美一卡2卡三卡4卡5卡免费观看 | 日本一区二区三区视频在线 |