dspc语言
㈠ dsp的程序问题。解释一下dsp c 语言的问题
从这些宏定义可以看到c语言是如何支持硬件编程的。
以#define IMR *(volatile unsigned int *)0x0004 为例:
1)0x0004,这个容易理解,是一个十六进制的常数
2)再看(volatile unsigned int *),这是一个强制转换,将0x0004转换成(volatile usigned int *)
3)现在解释volatile usigned int *是什么。* 表示指针(地址),这个指针指向一个 usigned int的数。最前面的volatile有特殊含义:这个指针必须保存在RAM中(不是FLASH或DSP寄存器中)
4)综合上面1)2)3)可知: (volatile unsigned int *)0x0004 的含义是:
0x0004是一个地址,在这个地址内保存的是一个unsigned int 类型的整数。这个地址存在于RAM
5)*(volatile unsigned int *)0x0004 最左边多一个*,表示取地址指向单元的内容。综合起来的意思是:从0x0004地址单元中取出一个usigned int 类型的数据值
6)#define IMR *(volatile unsigned int *)0x0004 的意思是,将从0x0004地址单元中取出一个usigned int 类型的数据值定义为IMR
7)根据DSP硬件,在DSP中RAM中的 0x0004地址单元恰好是中断管理寄存器!
8)绕了半天,#define IMR *(volatile unsigned int *)0x0004 的意思是:在C语言程序中,定义了一个宏标示符 IMR 来表示DSP中的中断管理寄存器。在程序中,可以通过这个宏标示符来使用这个寄存器:
unsigned int v = IMR; //取出中断管理寄存器的值并赋给v
㈡ dsp的c语言程序为什么需要优化
曾几何时汇编编程是dsp工程师的一张名片。很多人到现在谈起汇编编程还是颇为自豪的,搞得你想说自己不会都要鼓起点勇气——那眼神是恨不得把你送回火星去。这主要是因为在最开始的时候DSP上的C语言编译器不是很普遍,编译器的水平也还在起步阶段,很难用到DSP相应的硬件特性,编译效率值得商榷。而且那时DSP应用场景和复杂度远不比今天,基本上限制在数字信号处理的典型算法上,FFT,FIR,IIR滤波器,等等。这些函数和滤波器的实现相对今天的应用比较简单,用汇编语言也容易突出DSP的硬件特性。还有一个原因是那时候DSP普遍都跑的很慢,基本上在几十兆的水平。这也限制了C语言的使用。试想一下一段C代码跑的比汇编慢十倍,几十兆的DSP一下就变几兆了。
但是今天再来看这所有的一切是完全不一样了。首先是DSP的应用范围越来越广,客户越来越多的希望用同一颗芯片,在同一个平台上实现更多的设计和应用。这对DSP的设计,DSP和MCU的融合都带来重大影响。DSP和MCU之间也不是过往那井水不犯河水的安宁。随着DSP和MCU的主频先后突破1GHz,在很多应用中DSP和MCU相伴相生的场景也开始被一颗强壮的芯代替,或者DSP或者MCU。在这样的应用中,操作系统,文件系统,USB协议栈,TCP/IP,海量数据存储,样样都会用到。数字信号处理也从骨灰级的滤波器变成全系列音视频处理,OFDM基带处理,天线阵列信号处理,彩色图像重建… 试想一下这些应用哪一个不是成千上万行代码。汇编语言在编程复杂度,可移植性和可维护性上真的是遇到了前所未有的挑战。而与此相对应的是C语言和C语言编译器的蓬勃发展。今天您可以很容易找到上面提到所有这些应用和算法的C语言实现,而C语言编译器在编译效率和成熟度上都有很大的突破。也让C语言在DSP上的应用得以受到愈来愈高的重视。
㈢ 新手学习DSP的C语言编程,请高手指点:
C6713没用过,我用过TMS320F2812的芯片。建议你先熟悉一下CCS开发环境,然后再认真的看代码。TI的DSP,封装了很多的头文件,没有必要全部都要看看头文件里是怎么写的。最好先把整个程序的运行流程看懂。然后结合芯片手册,看看每一步怎么做的,是如何通过配置寄存器、如何使用外设等等。关键还是看芯片手册。等熟悉了之后,再深入看头文件啥的。
㈣ DSP的C语言,菜鸟起步,高手帮帮忙;感激不尽
这是非整数的定点计算, 无论加减法, 乘除法, 都需要移位.
㈤ DSP中的C语言和VC下的C语言有什么区别
怎么说呢,能叫C的超集吧其实就是C,或者C++,除了支持标准ANSI C以外,扩展了一些支持特定硬件的寄存器及其相关操作,等等。。
㈥ Dsp的c语言与标准c语言有什么区别
基本差不多,只是有些标准C的操作没有,比如printf,但是DSP的c语言扩充了一些关键字,和一般的c语言还是有区别的,需要自己去查相应的数据手册。
㈦ dsp c语言 基础
我现在也在学DSP,推荐《手把手教你学DSP》这本书,很基础的比较容易看懂。再去找一本介绍(你现在用的芯片)寄存器比较详细的书。学习新内容的时候先看看这一章的大概,然后再对应历程查看寄存器。这样还是比较容易上手的。
C语言的话还是需要的,看看c语言的循环部分(for循环必须要会)、函数部分(学会子函数的写法)、结构体部分(了解一点基础就行,因为dsp寄存器采用的结构体的方式),这样基本上就可以了,复杂的c语言用的不多,只要看看最最基础的一些就行。
㈧ DSP可不可以用C语言写
当然可以啦... 只要有编译开发环境,比如Code Composer Studio,编译就可以了