日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言随机生成int64_t类型的数据_手把手教你代码生成(上):MATLAB代码生成

發布時間:2024/2/28 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言随机生成int64_t类型的数据_手把手教你代码生成(上):MATLAB代码生成 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

FrancisZhao:專欄文章列表以及一些說明?zhuanlan.zhihu.comFrancisZhao:手把手教你代碼生成(下):SIMULINK代碼生成?zhuanlan.zhihu.com

本文主要參照書《SIMULINK仿真與代碼生成技術入門到精通》

MATLAB?Coder?從MATLAB代碼生成可讀和可移植的C和C ++代碼。 它支持大多數MATLAB語言和廣泛的工具箱。可以將生成的代碼集成到項目中作為源代碼,靜態庫或動態庫。還可以使用MATLAB環境中生成的代碼,以加快MATLAB代碼計算密集型部分。

命令窗口輸入“coder”,會彈出圖1界面:

圖1 Coder界面

點擊圖1中紅色方框可以加載.M文件,但是只能加載函數類文件,即文件中要有明確的輸入輸出,若一個文件中包含另一個文件,則要將其文檔也一起加載。

加載完畢后點擊右下角的 “NEXT”,進行下一步操作。

若在給出方程的一種引用方式,如圖2中的Quater_to_Euler([1;0;0;0]),之后點擊 “ Autodefine Input Types”,則系統可自動定義其為4*1的double矩陣。

同樣也可以手動定義。點擊圖3中的紅色方框,可以設置函數輸入變量的類型。變量類型滿足C語言的全部要求,也可以設置為矩陣形式,可以設置為結構體,結構體聲明中可以直接輸入結構體名字及變量名字。具體信息可詳見藍色的“learn more”。定義前最好知道函數輸入的維數,若定義為不定維數的矩陣,影響其執行效率,增多代碼數量。

圖2 自動定義輸入類型

圖3 手動定義輸入類型

設計輸出后點擊右下角的“NEXT”,進行下一步操作。

圖4 程序檢測界面

本步為源程序檢測,給出函數的數值輸入就可以在對話框顯示出具體結果,點擊圖4中的“ Check For Issues”可以檢測程序是否有錯誤不可以生成C文件,若有錯誤則根據提示進行修改。若無錯誤則會彈出圖5的界面。界面下方彈出的是計算結果,程序界面顯示的為調用次數。

圖5 程序檢測執行界面

M語言轉化成C語言要在使用前聲明變量,在上圖中已經將pitch等變量聲明為結構體形式,若按照M語言的矩陣聲明格式,則會報錯(如圖6),若先將矩陣定義為m*n的零矩陣,則可避免錯誤

圖6錯誤聲明矩陣的形式

設計輸出后點擊右下角的“NEXT”,進行下一步操作

圖6 代碼生成設置

點擊其中的”Build type“,其中有以下幾種類型可選,通常我們 選擇第一項。

圖7 build type

其中的”Hardware Board“選項點擊后可根據實際硬件需求來選擇。舉例如圖8:

圖8 硬件選擇

點擊圖中的”more settings“,可進入代碼生成選項窗口。

圖9 代碼生成窗口

選項”Paths“是選擇代碼生成的位置

如圖10中,第二選項”Speed”則包含數據溢出等保護函數,建議不勾選。

圖10 Speed

圖11中, 其中”Memory“選項與處理器的能力相關,其中第一個選項框與不定長的數組有關,嵌入式開發最好不選,第二個選項則與處理器的堆棧有關,要根據處理器的堆棧大小來設置。

圖11 Memory

圖12中,選項“Code Appearance”與代碼生成的風格有關,其中的“comments”部分建議勾選”MATLAB source code as comments“,方便代碼的可讀性。其他保持默認設置。

圖12 Code appearance

圖13中,在”Custom Code“的設置中,“Standard math library” 其中的選擇C89/C90,在“Code replace library”中可以選擇ARM Cortex-M3,實際上我們用的STM32F7系列的內核已經為ARM Cortex-M7,但是并沒有此選項。

圖13 硬件選擇

最后設置完成后,點擊“GENERATE”,無錯誤成功后為如下界面,其中的主函數為測試函數,并不執行具體的計算,其中的 initialize 函數為參數初始化函數,為空函數,可以自行添加相關初始化程序。

圖14 代碼生成成功后預覽圖

歡迎指正討論,轉載請注明,認同請點贊。

總結

以上是生活随笔為你收集整理的c语言随机生成int64_t类型的数据_手把手教你代码生成(上):MATLAB代码生成的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。