微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 德州仪器DSP开发常见问题宝典

德州仪器DSP开发常见问题宝典

时间:04-22 来源:本站整理 点击:

。注意只能编写一次,因为编写程序会破坏串口通信程序。

  3.在你的程序中编写:TI的网页上有相关资料。

  三十二。如何编写DSP外部的Flash?

  DSP的外部Flash编写方法:

  1.通过编程器编写:将OUT文件通过HEX转换程序转换为编程器可以接受的格式,再由编程器编写。

  2.通过DSP软件编写:您需要根据Flash的说明,编写Flash的编写程序,将应用程序和编写Flash的程序分别load到RAM中,运行编写程序编写。

  三十三。对于C5000,大于48K的程序如何BOOT?

  对于C5000,片内的BOOT程序在上电后将数据区的内容,搬移到程序区的RAM中,因此FLASH必须在RESET后放在数据区。由于C5000,数据区的空间有限,一次BOOT的程序不能对于48K。解决的方法如下:

  1.在RESET后,将FLASH译码在数据区,RAM放在程序区,片内BOOT程序将程序BOOT到RAM中。

  2.用户初试化程序发出一个I/O命令(如XF),将FLASH译码到程序区的高地址。开放数据区用于其它的RAM。

  3.用户初试化程序中包括第二次BOOT程序(此程序必须用户自己编写),将FLASH中没有BOOT的其它代码搬移到RAM中。

  4.开始运行用户处理程序。

  三十四.DSP外接存储器的控制方式

  对于一般的存储器具有RD、WR和CS等控制信号,许多DSP(C3x、C5000)都没有控制信号直接连接存储器,一般采用的方式如下:

  1.CS有地址线和PS、DS或STRB译码产生;

  2./RD=/STRB+/R/W; 3./WR=/STRB+R/W。

  三十五.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寄存器赋值

  }

  三十九.JTAG头的使用会遇到哪些情况?

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

  2)Emu0,Emu1需要上拉。

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

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

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

  四十.include头文件(.h)的主要作用

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

  四十一.DSP中断向量的位置

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

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

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

  四十二。有源晶振与晶体的区别,应用范围及用法

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

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

  四十三。程序经常跑飞的原因

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

  2)nmi管脚没有上拉。

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

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

  5)硬件系统有问题。

  四十四。并行FLASH引导的一点经验

最近BBS上关于FLASH和BOOT的讨论很活跃,我也多次来此

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top