chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

關(guān)于使用Stateflow調(diào)用外部C代碼的教程介紹

MATLAB ? 來源:djl ? 2019-09-17 08:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

如何調(diào)用現(xiàn)有的外部C代碼?

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

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

使用Stateflow調(diào)用外部C代碼。

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

#include "myfile.h"

double x;

double myfun(double a, double b)

{

return a +b;

}

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

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

關(guān)于使用Stateflow調(diào)用外部C代碼的教程介紹

除此,你不僅可以使用flowchart去調(diào)用外部C代碼,你也可以在狀態(tài)機(jī)里調(diào)用外部代碼,如下圖:

關(guān)于使用Stateflow調(diào)用外部C代碼的教程介紹

當(dāng)然,如果要做到上述直接調(diào)用C代碼,需要做如下幾點(diǎn)設(shè)置:

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

打開如下界面進(jìn)行如圖示的配置

關(guān)于使用Stateflow調(diào)用外部C代碼的教程介紹

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

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

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

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

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

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

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

    關(guān)注

    3

    文章

    4405

    瀏覽量

    66791
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    615

    瀏覽量

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

    關(guān)注

    1

    文章

    90

    瀏覽量

    15081
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    Python調(diào)用API教程

    兩個(gè)不同系統(tǒng)之間的信息交互。在這篇文章中,我們將詳細(xì)介紹Python調(diào)用API的方法和技巧。 一、用Requests庫發(fā)送HTTP請求 使用Python調(diào)用API的第一步是發(fā)送HTTP請求,通常
    的頭像 發(fā)表于 11-03 09:15 ?304次閱讀

    關(guān)于系統(tǒng)鏈接腳本的介紹

    起來后所處于的地址,程序中的相對尋址都會遵從此虛擬地址。 四、關(guān)于ITCM和DTCM(若使用FLASH下載模式) (1) 代碼段上載到ITCM,ITCM起始地址(0x80000000)存儲的代碼就是主函數(shù)的入口。 (2)
    發(fā)表于 10-30 08:26

    京東商品詳情接口實(shí)戰(zhàn)解析:從調(diào)用優(yōu)化到商業(yè)價(jià)值挖掘(附避坑代碼

    本文深入解析京東商品詳情接口jd.union.open.goods.detail.query,涵蓋核心特性、權(quán)限限制、關(guān)鍵參數(shù)及調(diào)用避坑指南。通過實(shí)戰(zhàn)代碼演示數(shù)據(jù)采集、促銷解析與商業(yè)分析,助力開發(fā)者高效獲取價(jià)格、庫存、評價(jià)等全維度數(shù)據(jù),挖掘供應(yīng)鏈與定價(jià)策略價(jià)值,顯著提升對
    的頭像 發(fā)表于 10-10 09:28 ?474次閱讀
    京東商品詳情接口實(shí)戰(zhàn)解析:從<b class='flag-5'>調(diào)用</b>優(yōu)化到商業(yè)價(jià)值挖掘(附避坑<b class='flag-5'>代碼</b>)

    CW32L012實(shí)現(xiàn)外部flash下載算法

    外部flash或者內(nèi)置的片上flash,都是編譯器通過調(diào)用寫好的FLM文件來實(shí)現(xiàn)下載,單片機(jī)內(nèi)部的安裝pack包就會有(官方實(shí)現(xiàn)),外部flash的情況比較復(fù)雜,例如用的哪種flash,用的什么接口,都是不定的,沒有辦法寫好一個(gè)
    的頭像 發(fā)表于 10-09 17:38 ?1126次閱讀
    CW32L012實(shí)現(xiàn)<b class='flag-5'>外部</b>flash下載算法

    GCC編譯器,怎么才能實(shí)現(xiàn)c文件中未被調(diào)用的函數(shù),不會被編譯呢?

    GCC編譯器,怎么才能實(shí)現(xiàn)c文件中未被調(diào)用的函數(shù),不會被編譯?有什么編譯選項(xiàng)可以設(shè)置嗎? 移植代碼,有些函數(shù)沒被調(diào)用的函數(shù)想留在代碼里,但不
    發(fā)表于 09-28 12:25

    Stateflow模型測試典型問題分享——不可達(dá)的分支

    問題描述: Stateflow條件存在互斥情況,導(dǎo)致部分工況不可達(dá)。 造成的影響: 較多的互斥結(jié)構(gòu)將無法滿足ASIL C/D等級覆蓋度要求,并存在安全隱患。
    的頭像 發(fā)表于 09-23 16:33 ?482次閱讀
    <b class='flag-5'>Stateflow</b>模型測試典型問題分享——不可達(dá)的分支

    關(guān)于LABVIEW 生成EXE后 動態(tài)調(diào)用外部VI的問題

    ADD.VI :是我需要調(diào)用的VI 應(yīng)用程序.EXE :是我項(xiàng)目里面把 \"調(diào)用DLL.VI\" 生成的exe文件 我沒有編譯exe前去調(diào)用add.VI是沒問題的,但是我生成
    發(fā)表于 07-30 14:22

    求助,關(guān)于STM32G070調(diào)用HAL_I2C_Mem_Read_IT測試疑問求解

    使用兩個(gè)板子,在例程I2C_TwoBoards_RestartComIT代碼上進(jìn)行修改: 主機(jī)調(diào)用HAL_I2C_Mem_Read_IT函數(shù),發(fā)送內(nèi)存地址16位后讀10個(gè)數(shù)據(jù); 從機(jī)
    發(fā)表于 03-11 07:00

    cubeide的代碼怎么編譯到內(nèi)部+外部FLASH里面去?

    我有一個(gè)項(xiàng)目,準(zhǔn)備使用GUI和AI,準(zhǔn)備使用STM32U5,但是編譯出來的代碼很多,STM32U5的內(nèi)部FLASH不夠用,準(zhǔn)備使用OSPI擴(kuò)展外部FLASH。但是遇到一個(gè)問題,我不知道怎么將編譯
    發(fā)表于 03-07 07:48

    調(diào)用讀命令CYPRESS_I2C_ReadI2C一直失敗的原因?

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

    代碼加密、源代碼防泄漏c/c++與git服務(wù)器開發(fā)環(huán)境

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

    分析C語言代碼結(jié)構(gòu)的設(shè)計(jì)問題

    來分析一個(gè)C語言代碼結(jié)構(gòu)的設(shè)計(jì)問題。 這段代碼,使用了兩次malloc,分別給 p1 和 p2 申請了內(nèi)存。用完后,內(nèi)存釋放,防止內(nèi)存泄漏。 大家覺得,這樣的代碼設(shè)計(jì)有沒有問題。
    的頭像 發(fā)表于 02-11 09:31 ?641次閱讀

    EE-128:C語言中的DSP:從C調(diào)用匯編類成員函數(shù)

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

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

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

    HAL庫的函數(shù)調(diào)用示例

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