|
Simulink轉(zhuǎn)C代碼
一、Simulink 轉(zhuǎn)代碼設(shè)置
1. 首先建立模型。
2. 為每根信號(hào)線取名字(與輸入輸出口的名字相同)。
3. 為表格、常量等數(shù)據(jù)賦值(可通過(guò)變量)。檢驗(yàn)?zāi)P褪欠衲軌蜻\(yùn)行,能夠正常運(yùn)行時(shí)轉(zhuǎn)代碼的前提。
4. 通過(guò)data object wizard的find,check all,mpt,package,create命令封裝數(shù)據(jù)。
5. 通過(guò)model explorer修改輸入輸出數(shù)據(jù)的類型(單片機(jī)中運(yùn)行時(shí),設(shè)定為(u)int8,(u)int16類型,可以采用繼承屬性Inherit: auto。)。注意包含Base workspace和自己模型下面的數(shù)據(jù)都要設(shè)定類型。
6. 第一次配置好configuration parameters后,不需要再次配置,至此即可generate code。
關(guān)于configuration parameters:
Solver:
Data Import/Export
Optimization:
Hardware Implementation:
Code generation:
Report:
Comments:
Interface:
Templates:
(圖中的code templates是來(lái)自錫柴的,用simulink自帶的templates也可以)
Memory Section:
二、Model configuration 說(shuō)明-20170624
這里階段模型配置的3種方法:
第1種是第一章里面介紹的方法,手動(dòng)逐條修改;
第2種是在原有配置基礎(chǔ)上,export出m文件,修改后再inport;
第3種則是利用simulink中自帶的模塊Configuration Wizard,調(diào)用rtwsampleconfig函數(shù),函數(shù)中的具體設(shè)置可以手動(dòng)更改。
實(shí)際使用中,推薦第二種方法!
二、集成到目標(biāo)代碼里(針對(duì)codewarrior編譯器)。
1.在sources文件下新建文件RTW,將生成的xxx_ert_rtw和slprj\ert\_sharedutils文件下的.c和.h文件全部放進(jìn)RTW中。
2.在codewarrior中添加RTW文件。
3.在初始化中定義輸入輸出數(shù)據(jù)并外部聲明(BP_Var_Initial.h,BP_Var_Extern.h中)。
4.為實(shí)現(xiàn)標(biāo)定功能,將標(biāo)定數(shù)據(jù)(表格等)放在RAM和Flash中。
將生成的數(shù)據(jù)定義和聲明屏蔽掉。
在Cal_Ram.h和Cal_Flash.h中分別定義變量,在Cal_Ram_Extern.h和Cal_Flash_Extern.h中進(jìn)行外部聲明。放在Flash中的數(shù)據(jù)可為變量添加后綴_Flash。
在FlashReadToRam()函數(shù)中將Flash中的變量值讀到對(duì)應(yīng)的Ram變量中。
5.在正確的位置調(diào)用生成的.c文件下的函數(shù)。
|
評(píng)分
-
查看全部評(píng)分
|