找回密码
 注册
关于网站域名变更的通知
查看: 447|回复: 2
打印 上一主题 下一主题

Simulink转换为DSP

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-10-25 11:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
Simulink转C代码
( i4 O+ B7 _0 {: G/ ~" H" a
# t& c! |$ B$ R& Q; j; c* |一、Simulink 转代码设置
1 ~; r$ [9 n) O/ j& B1.        首先建立模型。
9 u# A! i7 @% e2.        为每根信号线取名字(与输入输出口的名字相同)。
1 Q% n$ _. M( f  l& X4 @3.        为表格、常量等数据赋值(可通过变量)。检验模型是否能够运行,能够正常运行时转代码的前提。
, [+ u( p, y- c8 \% Y4.        通过data object wizard的find,check all,mpt,package,create命令封装数据。
6 L- l6 {6 d" y* y' y7 [: B5.        通过model explorer修改输入输出数据的类型(单片机中运行时,设定为(u)int8,(u)int16类型,可以采用继承属性Inherit: auto。)。注意包含Base workspace和自己模型下面的数据都要设定类型。
8 _! c5 Q+ x8 h! b$ L6.        第一次配置好configuration parameters后,不需要再次配置,至此即可generate code。- J- p9 p3 e$ f! _& S$ L; Y
" _; `6 v$ Q! l4 q( |/ B, A

- K; U, P" _# e% I关于configuration parameters:* m4 ]8 H' Z7 m
Solver:1 d$ h1 ^- O9 `& C& @

: r: s2 m' I- h) Q, S0 f+ uData Import/Export
: `% i2 _# i" f% N/ s! x5 A1 ^( G
2 }0 C8 c: a- F/ F# F: Z5 K8 }7 DOptimization:- [# q, X5 J+ b; M3 f7 }

6 Z1 |' V$ n6 \- m6 EHardware Implementation:
3 r9 e- K0 g0 m# H3 r, Q. S# m3 M( v- T# s. K8 O
Code generation:1 [! z& I8 F- E

& F4 ?. c7 [3 q. mReport:1 f# _- t+ H: e1 H. x; l! O
8 ^  {. e) r3 A8 _  x
Comments:+ k( C+ g$ M: R

. a6 Q: a; \0 N' \) c$ s! R* G$ JInteRFace:4 A1 G+ I/ f: `( J( Q; [
3 `$ I- _* q# d
Templates:
! L# T, ?3 I" S/ \  v$ h. l4 o+ Y
(图中的code templates是来自锡柴的,用simulink自带的templates也可以)
9 d& c2 ^; E. I( D: x9 kMemory Section:. Q! u9 s$ Z) C" ~  L7 h. [

" ]- u3 A2 z6 I9 |* Z3 e二、Model  configuration 说明-201706245 w: Q2 L/ ]9 e6 r3 z, |; h
这里阶段模型配置的3种方法:
8 Z  p# x( \- s% B3 s3 e第1种是第一章里面介绍的方法,手动逐条修改;
4 Y/ m0 Y3 ?" t7 ^第2种是在原有配置基础上,export出m文件,修改后再inport;
9 S' r- e! k/ n* o( O. I% O1 l1 c( J
/ Q! d. ]3 |; b* M) N8 U) C
& `8 n1 ~' g  ^1 ^8 B第3种则是利用simulink中自带的模块Configuration Wizard,调用rtwsampleconfig函数,函数中的具体设置可以手动更改。
. t$ j. n; K1 g, f3 b3 l
# y: X% X  z+ N, r8 ^1 i: `实际使用中,推荐第二种方法!' ?( H- L& E7 c& U) }* X
二、集成到目标代码里(针对codewarrior编译器)。- {8 F9 k. N/ G( M! o0 `
1.在sources文件下新建文件RTW,将生成的xxx_ert_rtw和slprj\ert\_sharedutils文件下的.c和.h文件全部放进RTW中。
& F! A) A1 x( {8 k2.在codewarrior中添加RTW文件。
1 }+ ?* R& g4 \6 h3 q% E! R3.在初始化中定义输入输出数据并外部声明(BP_Var_Initial.h,BP_Var_Extern.h中)。/ u* P4 @* Z7 \/ K
4.为实现标定功能,将标定数据(表格等)放在RAM和Flash中。
' P" H0 z- ]; e        将生成的数据定义和声明屏蔽掉。
. m. L* ~' |: X        在Cal_Ram.h和Cal_Flash.h中分别定义变量,在Cal_Ram_Extern.h和Cal_Flash_Extern.h中进行外部声明。放在Flash中的数据可为变量添加后缀_Flash。
- k$ _& [7 x( y  p8 [        在FlashReadToRam()函数中将Flash中的变量值读到对应的Ram变量中。
3 w% U2 I! D* E1 d8 z% `5.在正确的位置调用生成的.c文件下的函数。
: N& Q, X( g8 J1 Z6 a/ V* J' _) w8 a. V" b+ e. E% ]' T- j

6 u3 E5 X& a0 Q
4 ^+ z6 n/ B% x+ |1 ?7 z
, ^- ?& e/ s. ]8 g
; Q! Q) ~1 Z" u$ i( d% I$ m

该用户从未签到

2#
发表于 2021-10-25 13:31 | 只看该作者
在初始化中要外部声明

该用户从未签到

3#
发表于 2021-10-25 16:47 | 只看该作者
调用rtwsampleconfig函数,函数中的具体设置可以手动更改
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 03:18 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表