EDA365电子论坛网
标题:
关于DSP的C/C++语言程序设计
[打印本页]
作者:
pulbieup
时间:
2019-7-18 11:03
标题:
关于DSP的C/C++语言程序设计
TMS320C6X的开发环境与一般微处理器类似,也包括C优化编译器、编程接口、C/汇编语言程序调试器、软件仿真器、实时硬件仿真器、实时操作系统及应用软件等。
( `* W& s: q9 A+ z7 O- i" N. \# I
( Z* Z7 W) S4 \7 Z2 C
1 t7 v' B) H- Q( K1 I$ P: r
, p1 O0 Y# p8 J, ]1 x7 r' k
DSP的软件编程方式有3种:第1种是使用汇编语言进行编程;第2种是使用C语言编程以及使用DSP的C语言优化器,将C语言程序转化成汇编语言程序;第3种是混合编程模式,是指程序中既有汇编程序代码又含有C语言程序代码。
9 a2 C% p8 T& e) X! {1 R' k: S" r
/ q, ]2 U5 ~: w' _8 B4 |# P
6 r* k, B/ M1 U( T
% O: d9 D. A( t8 g$ {- T
如果完全采用汇编语言进行编程,将是一件很困难而且花费时间较多的事情;如果采用C语言,则各种C编辑器可能无法高效工作,而且采用C语言编程对DSP硬件系统的调试没有汇编语言那么直接、方便;如果采用混合编程,则可以克服汇编语言和C语言带来的弊端,因为混合编程不但具有汇编语言的高效和直接性的特点,而且还具有C语言的方便快捷的特点,所以混合编程模式是最为灵活的编程方式。
+ n& V0 e# ^! C& o
9 d7 U# R: J) J2 _9 \: D% g
j9 N3 F8 Q+ D' u4 M: O/ t* y
$ F2 u: Z& s# E% K0 X
在进行复杂算法开发时,一般的做法是先在PC上用高级语言(如C语言或者MATLAB语言)进行仿真,然后在移植到DSP平台上。考虑效率问题,可进一步手工调整汇编语言程序。
# L3 P8 ]1 W- |
( t7 ^% O u5 E1 M/ M. _; I
+ x9 [! r/ d4 F' G# Q
% g4 s: V5 t( o9 k/ _, ]' a
高级语言汇编器的工作方式大致分为两类:一类是直接由高级语言产生目标代码;另外一类是首先生成中间的汇编代码,再汇编成目标代码。TI公司提供的C编译器属于后者,它可以使用用户根据中间的汇编代码灵活方便地生成手工调整和改写。
$ @; s% s# F q( S4 X' W( L
% A6 X9 W0 D1 D( J
8 X& ]- W9 D: a! S9 _' P2 B8 B- g
) V. m5 }! q. [( s0 u
在C语言中使用汇编语言,可采用3种方式:第1种是C语言程序调用汇编语言程序;第2种是汇编语言程序调用C语言程序;第3种是C语言程序中嵌入汇编语言程序。TMS320C6XC编译器支持在C语言源代码中直接使用asm语句嵌入汇编语言程序,故在C编译器所产生的中间汇编代码的基础上,也局部使用嵌入式汇编语言,这一方面可大大提高一些频繁使用的代码段的效率,另一方面也不会改变原来的程序框架,有利于根据仿真结果进行调试。
& u1 ?) Y% Y+ Y0 y
0 I5 B# ], O" P& U8 d0 S. e+ l
M* L! d g6 @4 S2 n; g
) ^9 r7 q, `9 M, g
8 E6 E* e% b) B4 I! F+ g
8 `2 \! z! L2 S3 k
! D. m7 y# ]* {6 |2 S6 X5 U$ t
% z" `4 I8 p, A! S3 C' t
2 \$ B- g* k1 A5 V( K
作者:
gaoxings
时间:
2019-7-18 18:57
看看楼主说的什么东东
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2