在默認配置下,Simulink 模型自動生成的 C 代碼的函數原型都是 void model_step(void) 的形式。但是,集成代碼時,函數原型通常都需要滿足指定的形式。
如何配置 Simulink 模型
才能使生成代碼滿足指定的函數原型?
點擊末尾的 “閱讀原文” 下載本文的案例模型
設置模型自動生成的代碼的函數原型
要得到:
double myFun(double u1[10], double u2, double *y1)。
return y2
怎么做:
通過代碼生成的接口配置界面 Interface 的 Configure Model Functions 來自定義 Simulink 模型所生成的 C 代碼的函數原型。
舉個例子
1. 模型
使用上一篇的模型:

默認配置生成代碼的函數原型如下,數據傳遞都使用全局變量:

2. 配置
端口數據類型都設置為指定的 double:

接著配置函數原型為指定形式,如下圖:

根據菜單設置,配置所需要的函數原型,最后使用Validate按鈕來幫助檢查:

如 Validate 后下方的紅色文字所示,需要把 Base Workspace 里輸入輸出信號對象的 Storage Class 設置為 Auto。
另外,只能設置 return 一個變量。如果一定要返回多個值,可以考慮設置成結構體的形式。
因為模型里的 u1 是一個數組,所以在菜單里不能如上圖設置為 Value。
3. 結果
最后得到的代碼的函數原型:

總結
通過代碼生成的接口配置界面 Interface 的 Configure Model Functions 頁面來自定義模型代碼的函數原型。
-
函數
+關注
關注
3文章
4417瀏覽量
67502 -
代碼
+關注
關注
30文章
4968瀏覽量
73960 -
結構體
+關注
關注
1文章
131瀏覽量
11372
發(fā)布評論請先 登錄
matlab的算法部署在simulink中
在以下嵌入式軟件設計模型中,屬于數據流模型的是,哪里有設計模型的介紹?
使用Simulink自動生成浮點運算HDL代碼(Part 1)
AI的未來,屬于那些既能寫代碼,又能焊電路的“雙棲人才”
FA模型卡片和Stage模型卡片切換
從FA模型切換到Stage模型時:module的切換說明
同樣的代碼在官方開發(fā)板上運行正常,在自己板子上就跑不起來,怎么辦?
將模型部署到S32K3xx EVB時出現(xiàn)“下載失敗”錯誤的原因?如何解決?
如何實現(xiàn)MC33774IC在Simulink環(huán)境中使用基于模型的設計?
如何在Simulink中啟用ADC校準?
使用 QWQ:32B 模型搭配 VSCode 的 Cline 插件實現(xiàn)自動化代碼編程!
配置Simulink模型,調皮屬于你自己的代碼
評論