色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

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

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

Simulink 模型的自動代碼生成?

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

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

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

算法實現方便,測試方便

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

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

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

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

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

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

由各種編譯器,把它們編譯成不同的可執行文件,最后運行在不同的環境。

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

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

所以

對于代碼生成的任務來說

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

但經常會有人問,Coder支持哪些板子?

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

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

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

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

那么

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

Build Process

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

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

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

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

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

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

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

I/O Drive blocks

剛才說的是后臺可以調用編譯器,構造main文件,生成了可執行文件,下載到硬件。

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

然后可以做什么?

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

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

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

如果使用這種方式來開發產品,這樣看上去感覺真的很美好~

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

做產品開發,使用哪種 “集成” 方式,仁者見仁。

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

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

另一個經常會問的問題:

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

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

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

“今日天朗氣清,看似極好的日子,私心想若能約上三五好友,結伴出游,陶冶性情,便是再好不過了。”

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

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

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

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

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

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

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

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

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

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

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

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

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

所以,對于代碼生成的任務來說,除了選擇ert.tlc,點個按鈕之外,再考慮下數據管理、代碼結構、文件結構......

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

    關注

    5086

    文章

    19143

    瀏覽量

    306047
  • C代碼
    +關注

    關注

    1

    文章

    89

    瀏覽量

    14321
收藏 人收藏

    評論

    相關推薦

    Simulink與 Simscape的結合使用

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

    Simulink模型仿真與分析技巧

    1. 模型構建基礎 1.1 理解系統需求 在開始構建模型之前,明確系統的需求和目標是至關重要的。這包括了解系統的動態特性、輸入輸出關系以及預期的性能指標。 1.2 選擇合適的模塊 Simulink
    的頭像 發表于 12-12 09:23 ?786次閱讀

    探索設計稿自動生成Flutter代碼的技術方案

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

    如何自動生成verilog代碼

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

    Matlab/Simulink/Stateflow建模開發及仿真測試

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

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

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

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

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

    關于Makefile自動生成-autotools的使用

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

    ISEDA首發!大語言模型生成代碼到底好不好使

    在大模型席卷一切、賦能百業的浪潮里,“碼農”也沒能獨善其身。各種代碼自動生成的大模型,似乎描繪了一個人人都能像資深工程師一樣寫
    發表于 05-16 13:41 ?345次閱讀
    ISEDA首發!大語言<b class='flag-5'>模型</b><b class='flag-5'>生成</b>的<b class='flag-5'>代碼</b>到底好不好使

    【大語言模型:原理與工程實踐】揭開大語言模型的面紗

    大語言模型(LLM)是人工智能領域的尖端技術,憑借龐大的參數量和卓越的語言理解能力贏得了廣泛關注。它基于深度學習,利用神經網絡框架來理解和生成自然語言文本。這些模型通過訓練海量的文本數
    發表于 05-04 23:55

    Vivado 使用Simulink設計FIR濾波器

    的Add source中可選擇Add or Create DSP Sources,直接將模型文件(.mdl或.slx)添加至工程中,綜合的時候,系統將自動調用matlab分析模型文件,
    發表于 04-17 17:29

    Simulink自動生成代碼現階段的學習筆記

    在車載控制器的軟件開發中,simulink的身影幾乎隨處可見,主要是在控制算法和控制邏輯的實現。平時看同事點點點就生成代碼了,看起來很簡單,但是實際操作起來確各種磕磕絆絆。 下面記錄了一下步驟作為現階段的學習筆記吧。
    的頭像 發表于 04-17 10:56 ?3964次閱讀
    <b class='flag-5'>Simulink</b><b class='flag-5'>自動</b><b class='flag-5'>生成</b><b class='flag-5'>代碼</b>現階段的學習筆記

    在做simulink+tasking自動代碼生成時,編譯找不到底層文件是為什么?

    在做simulink+tasking自動代碼生成時,編譯找不到底層文件,將文件添加進去后,會出現RT或NRT等重復定義
    發表于 02-20 08:06

    Meta推出最新版AI代碼生成模型Code Llama70B

    Meta近日宣布了其最新版本的AI代碼生成模型Code Llama70B,并稱其為“目前最大、最優秀的模型”。這一更新標志著Meta在AI代碼
    的頭像 發表于 01-30 18:21 ?1466次閱讀

    DC2100B/A能不能支持MATLAB/simulink自動代碼生成

    1、硬件方面,微控制器是主要有幾種,計算能力如何,可以支持類似MPC的算法嗎?能不能擴展DSP的控制器? 2、軟件方面,能不能支持MATLAB/simulink自動代碼生成
    發表于 01-11 06:56
    主站蜘蛛池模板: 久九九精品免费视频| 国产人成无码视频在线观看| 白丝萝莉喷水| 久久青草热热在线精品| 亚洲国产成人精品无码区APP | 日韩精品欧美在线视频在线| 91九色麻豆| 美女露出逼| 2019精品国产品在线不卡| 久青草国产在线观看视频| 中国拍三a级的明星女| 葵司中文第一次大战黑人| 中文无码不卡的岛国片国产片| 久久国产视频网站| 伊人精品久久久大香线蕉99| 久久视频精品38在线播放| 最近韩国HD免费观看国语| 蜜臀AV精品久久无码99| 99视频在线看观免费| 全黄h全肉细节文在线观看| 成人免费精品视频| 桃花在线观看播放| 黑丝美女娇喘| 69精品人人人人| 日本伦子欲| 国产无遮挡色视频免费观看性色| 亚洲国产精品第一影院在线观看| 精品一二三区久久AAA片| 中文字幕乱偷无码AV蜜桃| 欧美极限变态扩张video| 国产69精品久久久久APP下载| 午夜理论片日本中文在线| 教室眠催白丝美女校花| 97人摸人人澡人人人超一碰| 全黄h全肉短篇禁乱np| 国产亚洲国际精品福利| 最新2017年韩国伦理片在线| 青青草在线视频| 国产专区青青草原亚洲| 91久久偷偷做嫩草影院免| 日韩亚洲国产中文字幕欧美|