女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

關于使用Stateflow調用外部C代碼的教程介紹

MATLAB ? 來源:djl ? 2019-09-17 08:43 ? 次閱讀

無論是Simulink仿真,還是對模型做代碼生成,已有C代碼的調用都是我們經常會遇到的情形:

如何調用現有的外部C代碼?

很多人首先想到的是S-Function。的確,S-Function提供了一種途徑,可以讓我們把C函數封裝成Simulink模塊在Simulink環境下運行。另外還有一種方式,叫做Legacy Code Tool,說白了也是S-Function,只是MATLAB提供了這樣的接口便于用于實現S-Function封裝。這兩種做法都不是我要介紹的。

我想跟大家說的是更方便的方法:

使用Stateflow調用外部C代碼。

假設有兩個文件,myfile.c和myfile.h。其中myfile.c中定義了一個全局函數和全局變量,如下:

#include "myfile.h"

double x;

double myfun(double a, double b)

{

return a +b;

}

myfile.h文件是對全局函數myfun()和全局變量x的聲明。

假如我已經為Chart定義了兩個輸入input1和input2,一個輸出output,那么Stateflow里你就可以像下面這樣使用這個函數和變量:

關于使用Stateflow調用外部C代碼的教程介紹

除此,你不僅可以使用flowchart去調用外部C代碼,你也可以在狀態機里調用外部代碼,如下圖:

關于使用Stateflow調用外部C代碼的教程介紹

當然,如果要做到上述直接調用C代碼,需要做如下幾點設置:

把Stateflow的動作語言(Action Language)設置為C;

打開如下界面進行如圖示的配置

關于使用Stateflow調用外部C代碼的教程介紹

以上是針對新版本MATLAB的界面。

對于老版本的MATLAB,在Simulation Target下面,還有一層Custom Code,作用和新版本是一樣的。

這里我們有三個地方可以設置,Insert custom C code in generated,這下面的幾個欄,都是把右側編輯框里的文本信息插入到Stateflow生成的Source file、Header file以及Initialize function和Terminate function里面。

說到這里很多人可能會迷糊了,Stateflow要生成代碼?沒錯,Stateflow的運行不同于Simulink模塊,Simulink模塊可以事先定義好各種行為或者動作,而Stateflow chart里面的設計可能千差萬別,沒法事先定義chart的行為,所以在運行Stateflow chart的時候,首先需要把這個chart轉成S-Function格式的C代碼,然后編譯成動態鏈接庫文件(MATLAB里面擴展名是mexw32或者mexw64,32或者64取決于MATLAB的位數),而這個插入代碼就發生在從chart轉成C代碼的過程中。比如,按照上圖的設置,在生成的C代碼的頭文件中會有一行代碼 #include “myfile.h”。

另外,Additional build information里面,需要指定路徑,在Include directories里面給出要編譯的C文件的路徑,如果C文件和模型在同一路徑下,也可以不指定;在Source files里面,給出要編譯的C文件myfile.c。這部分內容,是告訴編譯器和鏈接器需要編譯的C文件在什么路徑下以及需要編譯哪些自動生成的文件之外的C文件。

說到底,對于現有C代碼的調用,無論是自己編寫S-Function,還是使用Legacy Code Tool創建S-Function模塊,或者使用Stateflow,最終的實現方式都是S-Function(動態鏈接庫)相比之下,使用Stateflow會更便利、更直觀一些。

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

    關注

    3

    文章

    4368

    瀏覽量

    64187
  • 變量
    +關注

    關注

    0

    文章

    614

    瀏覽量

    28821
  • C代碼
    +關注

    關注

    1

    文章

    90

    瀏覽量

    14674
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    求助,關于STM32G070調用HAL_I2C_Mem_Read_IT測試疑問求解

    使用兩個板子,在例程I2C_TwoBoards_RestartComIT代碼上進行修改: 主機調用HAL_I2C_Mem_Read_IT函數,發送內存地址16位后讀10個數據; 從機
    發表于 03-11 07:00

    cubeide的代碼怎么編譯到內部+外部FLASH里面去?

    我有一個項目,準備使用GUI和AI,準備使用STM32U5,但是編譯出來的代碼很多,STM32U5的內部FLASH不夠用,準備使用OSPI擴展外部FLASH。但是遇到一個問題,我不知道怎么將編譯
    發表于 03-07 07:48

    調用讀命令CYPRESS_I2C_ReadI2C一直失敗的原因?

    CYPRESS_I2C_ReadI2C一直失敗。 1----我將samples的.c代碼添加到Qt中的cpp調用。 如圖1 圖1 2----調用
    發表于 02-20 08:04

    代碼加密、源代碼防泄漏c/c++與git服務器開發環境

    代碼加密對于很多研發性單位來說是至關重要的,當然每家企業的業務需求不同所用的開發環境及開發語言也不盡相同,今天主要來講一下c++及git開發環境的源代碼防泄密保護方案。企業源代碼泄密
    的頭像 發表于 02-12 15:26 ?455次閱讀
    源<b class='flag-5'>代碼</b>加密、源<b class='flag-5'>代碼</b>防泄漏<b class='flag-5'>c</b>/<b class='flag-5'>c</b>++與git服務器開發環境

    分析C語言代碼結構的設計問題

    來分析一個C語言代碼結構的設計問題。 這段代碼,使用了兩次malloc,分別給 p1 和 p2 申請了內存。用完后,內存釋放,防止內存泄漏。 大家覺得,這樣的代碼設計有沒有問題。
    的頭像 發表于 02-11 09:31 ?307次閱讀

    AN-840: 通過I2C接口更新代碼

    電子發燒友網站提供《AN-840: 通過I2C接口更新代碼.pdf》資料免費下載
    發表于 01-15 16:04 ?0次下載
    AN-840: 通過I2<b class='flag-5'>C</b>接口更新<b class='flag-5'>代碼</b>

    EE-128:C語言中的DSP:從C調用匯編類成員函數

    電子發燒友網站提供《EE-128:C語言中的DSP:從C調用匯編類成員函數.pdf》資料免費下載
    發表于 01-07 13:48 ?0次下載
    EE-128:<b class='flag-5'>C</b>語言中的DSP:從<b class='flag-5'>C</b><b class='flag-5'>調用</b>匯編類成員函數

    AKI跨語言調用庫神助攻C/C++代碼遷移至HarmonyOS NEXT

    /C++代碼快速遷移至HarmonyOS NEXT。憑借卓越的兼容性,AKI已成為廠商與開發者打造鴻蒙原生應用過程中廣泛使用的跨語言調用解決方案。 AKI是一款專為鴻蒙原生開發設計的FFI(
    發表于 01-02 17:08

    HAL庫的函數調用示例

    、GPIO(通用輸入輸出)相關函數 GPIO初始化 c復制代碼GPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.Pin = GPIO_PIN_4
    的頭像 發表于 12-02 14:01 ?1367次閱讀

    TMS320C6000 EMIF至外部SDRAM接口

    電子發燒友網站提供《TMS320C6000 EMIF至外部SDRAM接口.pdf》資料免費下載
    發表于 10-26 10:06 ?0次下載
    TMS320<b class='flag-5'>C</b>6000 EMIF至<b class='flag-5'>外部</b>SDRAM接口

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

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

    hex文件如何查看原c語言代碼

    直接將 .hex 文件轉換回原始的 C 語言代碼是不可能的,因為 .hex 文件是二進制文件,它包含了單片機程序編譯后的機器碼,這些機器碼與原始的 C 語言代碼在結構和表達上存在巨大的
    的頭像 發表于 09-02 10:37 ?4373次閱讀

    LKT(LCS)代碼移植芯片優勢

    所謂代碼移植就是客戶可以把自定義的程序一部分關鍵代碼函數移植到加密芯片中運行。用戶采用標準C語言編寫代碼,通過KEIL C編譯器,編譯并下載
    的頭像 發表于 08-22 10:03 ?1092次閱讀

    記一次JSF異步調用引起的接口可用率降低

    前言 本文記錄了由于JSF異步調用超時引起的接口可用率降低問題的排查過程,主要介紹了排查思路和JSF異步調用的流程,希望可以幫助大家了解JSF的異步調用原理以及提供一些問題排查思路。本
    的頭像 發表于 08-05 13:40 ?455次閱讀
    記一次JSF異步<b class='flag-5'>調用</b>引起的接口可用率降低

    關于使用esp_iot_rtos_sdk 的 wifi_station_connect() api調用遇到的疑問求解

    您好,我有一些關于使用 esp_iot_rtos_sdk 的 wifi_station_connect() api 調用的行為的問題。 1) 調用 wifi_station_connect
    發表于 07-15 06:45