您的位置:首页 > 其它

[DSP+ARM] DSP开发常见问题

2013-05-22 09:24 155 查看
1. GEL文件的功能?

GEL文件的功能同emuinit.cmd的功能基本相同,用于初始化DSP。但它的功能比emuinit的功能有所增强,GEL在CCS下有一个菜单,可以根据DSP的对象不同,设置不同的初始化程序。以TMS320LF2407为例:

#define SCSR1 0x7018 ; 定义scsr1寄存器

#define SCSR2 0X7019 ; 定义scsr2寄存器

#define WDKEY 0x7025 ; 定义wdkey寄存器

#define WDNTR 0x7029 ; 定义wdntr寄存器

StartUp() ; 开始函数

{

GEL_MapReset(); ; 存储空间复位

GEL_MapAdd(0x0000,0,0x7fff,1,1); 定义程序空间从0000-7fff 可读写

GEL_MapAdd(0x8000,0,0x7000,1,1); 定义程序空间从8000-f000 可读写

GEL_MapAdd(0x0000,1,0x10000,1,1); 定义数据空间从0000-10000可读写

GEL_MapAdd(0xffff,2,1,1,1); 定义i/o 空间0xffff可读写

GEL_MapOn(); 存储空间打开

GEL_MemoryFill(0xffff,2,1,0x40); 在i/o空间添入数值40h

*(int *)SCSR1=0x0200; 给scsr1寄存器赋值

*(int *)SCSR2=0x000C; 给scsr2寄存器赋值,在这里可以进行mp/mc方式的转换

*(int *)WDNTR=0x006f; 给wdntr寄存器赋值

*(int *)WDKEY=0x055; 给wdkey寄存器赋值

*(int *)WDKEY=0x0AA; 给wdkey寄存器赋值

}

2. 使用TI公司模拟器件与DSP结合使用的好处?

1) 在使用TI公司的DSP的同时,使用TI公司的模拟可以和DSP进行无缝连接。器件与器件之间不需要任何的连接或转接器件。这样即减少了板卡的尺寸,也降低了开发难度。

2)同为TI公司的产品,很多器件可以固定搭配使用。少了器件选型的烦恼

3)TI在CCS中提供插件,可以用于DSP和模拟器件的开发,非常方便。

3. C语言中可以嵌套汇编语言?

可以。在ANSI C标准中的标准用法就是用C语言编写主程序,用汇编语言编写子程序,中断服务程序,一些算法,然后用C语言调用这些汇编程序,这样效率会相对比较高。

4. 在定点DSP系统中可否实现浮点运算

当然可以,因为DSP都可以用C,只要是可以使用c语言的场合都可以实现浮点运算。

5. JTAG头的使用会遇到哪些情况

1)DSP的CLKOUT没有输出,工作不正常。

2)Emu0,Emu1需要上拉。

3)TCK的频率应该为10M。

4)在3.3V DSP中,PD脚为3.3V 供电,但是仿真器上需要5V电压供电,所以PP仿真器盒上需要单独供电。

5)仿真多片DSP。在使用菊花链的时候,第一片DSP的TDO接到第二片DSP的TDI即可。注意当串联DSP比较多的时候,信号线要适当的增加驱动。

6. include头文件(.h)的主要作用?

头文件,一般用于声明程序中的函数、参数、变量和一些宏单元,同库函数配合使用。因此,在使用库时,必须用相应的头文件说明。

7. DSP中断向量的位置?

1)2000系列dsp的中断向量只能从0000H处开始。所以在我们调试程序的时候,要把DSP选择为MP(微处理器方式),把片内的Flash屏蔽掉,免去每次更改程序都要重新烧写Flash工作。

2)3x系列dsp的中断向量也只能在固定的地址。

3)5000,6000系列dsp的中断向量可以重新定位。但是它只能被重新定位到Page0范围内的任何空间。

8. 有源晶振与晶体的区别,应用范围及用**

1)晶体需要用DSP片内的振荡器,在datasheet上有建议的连接方法。晶体没有电压的问题,可以适应于任何DSP,建议用晶体。

2)有源晶振不需要DSP的内部振荡器,信号比较稳定。有源晶振用法:一脚悬空,二脚接地,三脚接输出,四脚接电压。

9. 程序经常跑飞的原因?

1)程序没有结尾或不是循环的程序。

2)nmi管脚没有上拉。

3)在看门狗动作的时候程序会经常跑飞。

4)程序编制不当也会引起程序跑飞。

5)硬件系统有问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: