欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
解鎖隱藏技能 | 使用Stateflow調用外部C代碼

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

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

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

我想跟大家說(shuō)的是更方便的方法:

使用Stateflow調用外部C代碼。

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

#include 'myfile.h'

double x;

double myfun(double a, double b)

{

    return a +b;

}

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

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


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

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

  • 把Stateflow的動(dòng)作語(yǔ)言(Action Language)設置為C;

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


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

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

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

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

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

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


本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
怎樣生成我想要的 C 代碼系列(8)
怎樣生成我想要的C代碼系列 | Simulink子系統如何生成單獨的子函數?
在MATLAB中采用M文件實(shí)現對Simulink中的S函數程序實(shí)現自動(dòng)調參數
將 MATLAB 代碼轉換為 Stateflow 流程圖
GUI指導教程系列(9)——在GUI中調用Simulink模型 - MATLAB技術(shù)論壇 ...
MATLAB中的S-Function的用法(C語(yǔ)言)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久