1. dsp 用什么编程
用的都是CCS编程。
CCS有两种工作模式:
1.软件模拟器模式:可以从DSP芯片中分离出来,在PC上模拟DSP的指令集和工作机制,主要用于前期算法的实现和调试。
2.硬件在线编程模式:在DSP芯片上实时运行,将应用程序的在线编程和调试与硬件开发板集成。
CCS的开发系统主要由以下组件构成:
1.TMS320C54x集成代码生成工具;
2.CCS综合开发环境;
3.DSP/BIOS实时内核插件及其应用程序接口API;
4.实时数据交换RTDX插件及相应的编程接口API;
5.由第三方TI公司对外提供多种应用模块插件。
(1)dspc编程实例扩展阅读:
dsp编程中双重循环、多重循环的优化:
(1)多重循环拆成单层循环,减少循环层数;
例如,双重循环内一个百cycle只使用了一个乘法器,拆成单层循环后,一个cycle可使用2个乘法器,充分利用DSP乘法器资源,同时运算速度也会加快;
(2)如果循环次数较少,则将其放入外循环;如果循环次数更多,则将其放入内存循环;
(3)二维数组的双环:二维数组的行循环置于外环,列循环置于内环;
(4)避免循环内的乘除操作:循环内的乘除操作移到循环外,由加法代替。
2. DSP汇编编程
.global start ; 定义全局标号
.sect ".resect"
B start
.text
.bss x,1 ;三个变量各为一个字(16位,非初始化段)
.bss y,1
.bss z,1
.textstart:
ldp #0 ;因下面诸变量使用直接寻址,装载DP值
splk #5,x ;变量赋初值,x=5
splk #6,y ; y=2
lacc x ;将x的值装载至累加器
add y ;累加器加上y的值
sacl z ;将累加器结果(32位)的低16位存放到变量z
ldp #4 ;直接寻址,装载DP值,页指针指向片内数据区DARAM B0
splk #1,1 ; 绝对地址201H开始的四个单元存1,2,3,4
splk #2,2
splk #3,3
splk #4,4; 以下使用间接寻址将201H开始的4个单元的数
; 转存到300H开始的4个单元 lar ar0,#201h ; 源起始地址存在辅助寄存器0
lar ar1,#300h ;目的起始地址存在辅助寄存器1
lar ar2,#3 ; 循环计数值为移动数-1
mar *,ar0 ; 设置当前辅助寄存器为ar0loop1: ;开始循环搬移数据
lacc *+,ar1 ;将当前辅助寄存器(ar0);所
;指向的数据内存单元的值装载到acc,
; ar0加1,设置当前辅助寄存器为ar1
sacl *+,ar2 ; acc低16位存放到当前辅助寄存;器(ar1)指定的单元
ar1加1,设置当前辅助寄存器为ar2
banz loop1,ar0 ; 当前辅助寄存器(ar2)如果不等于0则当前辅助寄 存器(ar2)减1,转loop1xh: B xh ; 空循环
.end