DSP C语言基础要点

转载 2007年09月24日 23:22:00

年初到现在,接触DSP已经半年了,由于公司没有人指导,做了这么久都没出什么大的成果,也走了不少的弯路。以前做单片机用C编过一些程序,个人觉得还可以。现在看来也只是在吃以前在学校里面一些C语言皮毛的老本,加上一些网上说的所谓的技巧什么的结合以前汇编的经验做了一些针对处理器的优化而已,实在“鸡肋”得很。很多东西都没有接触应用到。
   直到接触到DSP,由于使用TI的库文件例程的缘故,对结构体,联合体等有了进一步的了解,也对一个工程变量的使用有了更深的认识。下面对谈谈对DSP C刚入门者的一些建议:
   1.DSP程序的定位配置---CMD文件,要求熟悉DSP的存储器结构。这一部分对接触硬件多一些的新手很容易,其实也就是配置一般的C语言编译器的一部分,比如AVR单片机的头文件,cpu选择等在DSP中就是这一部分完成。另外还要注意TI例程中对加密位,看门狗的处理。

   2.当然是C语言的一些基础了:运算符,优先级,几个基本流程控制语句。这些无论是什么C平台运行都一样的,基础中的基础。但是也很容易因为这些基础的简单的问题,导致一些很郁闷的结果。也是因为对这些基础的概念的理解深入程度影响你的软件思想。

   3.结构体,联合体,位域的运用,最好能有一个对比,了解运用的场合及优缺点。有了这些基础,就很容易明白TI例程的一些基本结构。

   4.变量的作用域以及生存期,这样才能从最初的单个的C文件过渡到C工程,才能更好地了解模块化编程地基本要素,实现基础。

   5.Q格式等的应用,因为大多数DSP都是定点的,而做运算处理的很多时候都不可避免要用到浮点数。使用Q格式才能更好的发挥dsp高速的特性。所以有人说“不会使用Q格式的DSP程序员不是优秀的程序员”!

   6.另外我觉得如果用DSP参与控制的话,最好能熟悉一些面向对象的程序语言,比如C++。要能了解用C实现面向对象的方法。为什么呢?一是面向对象我个人觉得在写程序方面模块化等要好一些,特别是控制领域,我看过一些高手的PLC程序也是采用的面向对象的思想构件模块的,从那以后我的单片机程序才开始这样靠拢,也确实发现了一些好处。比如对那些c流程中多次要操作的资源,有时候会出现一些共用操作的位置错误。二是TI的例程中有好多地方用到了这些思想,要明白这些东西,你才能更容易理解那些例程。这一部分我推荐一本书《DSP C2000程序员高手进阶》。

  7.数据结构知识,DSP要做运算,肯定要涉及到一些好的数据结构。才能更好的优化算法。

  8.matlab的运用。matlab提供了强大的数学运算能力,还能对DSP结合CCS进行仿真。可以把程序员从繁琐的底层编程中解放出来。个人感觉matlab给编程思想和底层程序提供了一个连接,一个平台。 

 

 

感觉不错的几本DSP书

TMS320C6000系列DSP编程工具与指南 {b9|r&</  
【作  者】 (美)Texas Instruments Incorporated  f ; OmR->  
【译  者】  田黎育 何佩琨 朱梦宇  $ ;(k35p  
【丛 书 名】  TI DSP系列中文手册 ,g?m?t KA  
【出 版 社】  清华大学出版社 @anxE%l?  
【书 号】 7302136157 {l|Hk![S  
【开 本】 185×260 dk*5u~]s  
【页 码】 676 -j/~sdrI  
【出版日期】 2006年9月 RgeNvY-  
gM$ r'4  
TI DSP/BIOS用户手册与驱动开发 y?C5'tR B  
【作  者】 (美)Texas Instruments Incorporated cns#n`  
【译  者】  王军宁;何迪;马娟;胡启龙 5aK||:Yp9  
【丛 书 名】  TI DSP系列中文手册 8/"-G@n  
【出 版 社】  清华大学出版社 a{bGgW<p3  
【书 号】 9787302141242 rkE34hRQ/  
【开 本】 16开 s za6:'zj  
【页 码】 255 J}IEMJI  
【出版日期】 2007年4月 hRxV$mLE  
slGtFbN2  
TMS320 DSP算法标准 iZtH_8A  
【作  者】 (美)Texas Instruments Incorporated D+ jc iu  
【译  者】  徐盛;胡剑凌 KfcD3Bv  
【丛 书 名】  TI DSP系列中文手册 rM8  
【出 版 社】  清华大学出版社 m0?p0 z  
【书 号】 9787302148722 SLDP+TNa  
【开 本】 16开 F@lA'QO8+  
【页 码】 130 mdCEN% P*8  
【出版日期】 2007年4月 +u8LQ G[  
%ljQz-[q  
TMS320C28x系列DSP指令和编程指南 [TtA/ef  
【作  者】 (美)Texas Instruments Incorporated ' ^, S  
【译  者】  刘和平 张卫宁 刘林等  :tj>~-`z  
【丛 书 名】  TI DSP系列中文手册 f"Em9*^B1  
【出 版 社】  清华大学出版社 {jHgdFr0  
【书 号】 7302104387 j^C OS  
【开 本】 185×260 `6R:^'x]B  
【页 码】 483 6%kb0QVh2T  
【出版日期】 2005年3月 o"X,#p<  
y|L.NSGDO  
TMS320C54x系列DSP的CPU与外 6C=7W /  
【作  者】 (美)Texas Instruments Incorporated  4}gb5E1  
【译  者】  梁晓雯 裴小平 李玉虎  vIJBv  
【丛 书 名】  TI DSP系列中文手册 3 z 1 >  
【出 版 社】  清华大学出版社 W yD?|#  
【书 号】 7302132216 mW3='e:Y  
【开 本】 185×260 |#?7,j5  
【页 码】 440 W925 @K~  
【出版日期】 2006年9月 ;L`Jes(j  
mB5e}{FF  
DSP系统的VLSI设计 49 j#Bg  
【作  者】 李哲英  54u-A  
【出 版 社】  机械工业出版社* #GclW-  
【书 号】 9787111204787 d!}ulTf  
【开 本】 16开 ;R&k|"]]  
【页 码】 296 1._@!U  
【出版日期】 2007年2月 )+<F[0 }7  
wTy'4 |2  
DSP C2000程序员高手进阶 .ww7<_$4?a  
【作  者】 王潞钢 陈林康 曾岳南 许贤昶 S"OEP;uA  
【出 版 社】  机械工业出版社 0W`lSM+  
【书 号】 7111152697 g''@5pru  
【开 本】 16开 43OJ|5C(<  
【页 码】 206 7Dr0PJj@G  
【出版日期】 2005年1月

C语言基础知识梳理总结

C语言是当代人学习及生活中的必备基础知识,应用十分广泛,下面为大家带来C语言基础知识梳理总结,C语言零基础入门绝对不是天方夜谭!...
  • g984160547
  • g984160547
  • 2017年03月06日 09:54
  • 4148

DSP入门必看(上)

文章来自:http://doggo.blog.sohu.com/4401813.html 如何选择外部时钟?  DSP的内部指令周期较高,外部晶振的主频不够,因此DSP大多数片内均有PLL。但每个...
  • scottly1
  • scottly1
  • 2014年12月18日 14:21
  • 2698

C语言基础要点

Cyuyan 1、
  • gongsunjinqian
  • gongsunjinqian
  • 2014年11月18日 17:52
  • 240

计算导论与C语言基础(专项课程之一)

四. 程序运行的基本原理: 1.冯诺依曼式计算机(存储式计算机)是现代计算机的原型,EDVAC是现代计算机的原型。 2.冯诺依曼式计算机基本结构:运算器 存储器 控制器 输入设备 输出设备。 对比我们...
  • liuwenjunli
  • liuwenjunli
  • 2015年07月25日 11:55
  • 952

【C语言基础一百题1】C语言基础100题全新整理版

最后一个寒假,想复习一下c语言的基础知识,正好也做一个查缺补漏的工作,于是找个C语言基础100题作为练习。 但是原来的100题涉及很多绘图的问题,而且有些题目过于混乱并且在摘记过程中没有经过加工,所...
  • ANTON_6
  • ANTON_6
  • 2011年02月06日 21:08
  • 11662

C语言基础学习学习前的准备-1

开始学习C语言啦~先了解下C语言的一些相关只是把,比如字节、位,以及要注意的一些编程习惯。...
  • octopole
  • octopole
  • 2016年08月05日 09:53
  • 858

c语言面试知识总结

1、 Const: (1)const修饰的是一个只读变量 (2)节省空间,避免不必要的内存分配,提高效率 编译器通常不为普通const只读变量分配存储空间,而是将它们保存在符号表中,这使 得它...
  • jyx1370979991
  • jyx1370979991
  • 2014年09月23日 21:58
  • 1315

JS 关闭与刷新?

关闭与刷新这是一个问题。 function  close(){   var n = window.event.screenX - window.screenLeft;             var ...
  • shuaisunny
  • shuaisunny
  • 2010年12月08日 12:26
  • 247

c语言基础面试题

原文: c语言基础面试题 链接:http://bbs.51cto.com/thread-811556-1.html 1. 写一个函数判断当前系统的字节序。 2. 如何用c语言执...
  • xww810319
  • xww810319
  • 2014年01月03日 10:51
  • 3724

C语言入门(十二)函数的定义和调用

函数的定义和调用  前言: 本节介绍C程序的基本单元--函数。函数中包含了程序的可执行代码。每个C程序的入口和出口都位于函数main()之中。main()函数可以调用其他函数,这些函数执行...
  • caihongdao123
  • caihongdao123
  • 2016年07月12日 11:13
  • 6744
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DSP C语言基础要点
举报原因:
原因补充:

(最多只允许输入30个字)