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

Simulink转换为DSP

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
Simulink转C代码
4 f6 \7 k+ V! o5 w! h7 F. x7 H) ^9 f5 q1 o) u% ^1 q
一、Simulink 转代码设置+ M) l5 w# L% {0 d4 Y
1.        首先建立模型。
; u3 ?1 L2 ^  h# i! _+ L2.        为每根信号线取名字(与输入输出口的名字相同)。0 z7 F% T, R# i4 J' w3 w* g3 ?! z
3.        为表格、常量等数据赋值(可通过变量)。检验模型是否能够运行,能够正常运行时转代码的前提。- T9 Y; N& O4 X
4.        通过data object wizard的find,check all,mpt,package,create命令封装数据。
0 k" e9 i# F2 _5.        通过model explorer修改输入输出数据的类型(单片机中运行时,设定为(u)int8,(u)int16类型,可以采用继承属性Inherit: auto。)。注意包含Base workspace和自己模型下面的数据都要设定类型。
) C( j/ Q' R  l! h+ j6.        第一次配置好configuration parameters后,不需要再次配置,至此即可generate code。
$ A, X' N6 F" K' a
. x( G! A1 }, }2 s5 I+ e. H+ S* e  T6 u; V
关于configuration parameters:& y+ d) m1 V' c1 Q5 K
Solver:
( ?4 d1 g, F4 P# `0 {$ ?6 g) Z% p3 S7 b0 |# r+ B2 }! l: `% v% T
Data Import/Export
8 ?4 B, `, b$ X* a2 m% F/ l$ p1 A1 G. c! D1 Q  g8 G) i$ }. h8 @
Optimization:
& K7 N9 L2 c* d: m3 {) e& ?" Y# j( b8 a% W, e. e/ R0 Q
Hardware Implementation:
: H$ Y7 Y& G7 r& W9 ]% o0 |. a* \! x. l2 h' J
Code generation:7 m3 p1 Z$ v/ O7 ~; \
/ b: R2 ~4 }! V
Report:, |$ j9 z2 T! g  S  x: B: P

1 J$ w* ]* V* @* P: WComments:
1 i" u" p; {1 o8 U% W* J: U4 f% i, ~/ e. J: w
InteRFace:; w: D1 |4 Z' v! f2 V

% i$ _5 H" x- R8 B) x  w) p: sTemplates:
2 ]: l, J: g/ |0 a* ~
+ s( ^: T5 S$ W(图中的code templates是来自锡柴的,用simulink自带的templates也可以)* w% h1 K2 G6 H
Memory Section:
( B% m' M3 L  x
) g0 k. q6 i  Y$ S- o7 N3 C二、Model  configuration 说明-20170624# o; i4 n% o$ p; J
这里阶段模型配置的3种方法:
: i/ d* m# ~5 r5 a% s第1种是第一章里面介绍的方法,手动逐条修改;8 E  T" [6 g2 p: l: F9 C1 m' m) |
第2种是在原有配置基础上,export出m文件,修改后再inport;
0 x: Z3 O; ~7 }# [! b4 z5 x2 z) F0 ^. ?+ o. [

9 U# E8 P4 i" f第3种则是利用simulink中自带的模块Configuration Wizard,调用rtwsampleconfig函数,函数中的具体设置可以手动更改。
" Z2 u  }( N' R9 Q+ v& y8 {' n
" W8 R+ d# }1 s+ v实际使用中,推荐第二种方法!: i6 n2 ?1 n* @0 P; v
二、集成到目标代码里(针对codewarrior编译器)。3 m' F- z. P+ k
1.在sources文件下新建文件RTW,将生成的xxx_ert_rtw和slprj\ert\_sharedutils文件下的.c和.h文件全部放进RTW中。" A3 ~6 z9 R6 |
2.在codewarrior中添加RTW文件。8 S8 x, {# a4 ?3 ^! ?1 V' B
3.在初始化中定义输入输出数据并外部声明(BP_Var_Initial.h,BP_Var_Extern.h中)。0 z+ A; b' V1 M* B4 K
4.为实现标定功能,将标定数据(表格等)放在RAM和Flash中。/ a4 t9 x; m" C4 D7 U/ D" A
        将生成的数据定义和声明屏蔽掉。
5 S3 M$ v$ L* ~, p0 M8 w" s/ S$ n! F        在Cal_Ram.h和Cal_Flash.h中分别定义变量,在Cal_Ram_Extern.h和Cal_Flash_Extern.h中进行外部声明。放在Flash中的数据可为变量添加后缀_Flash。
6 u) q6 ^  g$ `! H8 Y: V% Z- P        在FlashReadToRam()函数中将Flash中的变量值读到对应的Ram变量中。; ]8 L) b9 O4 {  v' Y% ]& j
5.在正确的位置调用生成的.c文件下的函数。
& G# x! z  a0 f, Q! S5 N
3 e1 F/ i& H% z, T4 F& _  d1 W) I+ S4 `$ w
. X  p3 u: K( U) T4 t: Z
0 y! r0 |, [5 y0 w
! \4 m: Y! r  \8 |# H' I

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 23:43 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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