luoxue 发表于 2011-10-2 10:57:19

求助:为何LF2407A 仿真时不能全速运行

我用 的是2407A 的开发板,仿真器是XDS510,CCS3.3,仿真器能正常连接到开发板上,在仿真时单步运行没什么问题,可当全速运行时程序就不知道跑哪里去了,没有在我的while(1)循环中,以下是我仿真用的程序,初学DSP有很多不懂,请大侠指点:

main.c

#include"stdio.h"
#include"2407.h"
unsigned int a=0;
unsigned int b=0;
unsigned int c=0;

void wait(void)
{
unsigned int i;
for(i=0; i<1000; i++)
{
   if(i==200)
   {
b=100;
b++;
   }
}
}
void main(void)
{
asm(" setc INTM");/*禁止所有中断*/
asm(" clrc SXM");/*无符号扩展*/
asm(" clrc OVM");/*无溢出保护*/
asm(" clrcCNF");/*将块B0配置到数据存储区*/

*SCSR1 = 0X0600|0X0004;
a=0x1520;
    *MCRA = 0X0000;
*PADATDIR = 0XFF00;
*PBDATDIR = 0XFF00;
*PBDATDIR = 0XFFFF;
a++;
*PBDATDIR = 0XFF00;
*PBDATDIR = 0XFFFF;
b++;
*PBDATDIR = 0XFF00;
*PBDATDIR = 0XFFFF;
c++;
while(1)
{
*PBDATDIR = 0XFF00;
wait();
*PBDATDIR = 0XFFFF;
}
}

cmd 文件
-stack 0x100
MEMORY
{
PAGE 0:
         VECS:   origin = 0x0000,length = 0x0040
         FLASH:   origin = 0x100,length = 0x7F00
         SARAM_P:origin = 0x8001,length = 0x4000
PAGE 1:
         B2:   origin = 0x0060,length = 0x020
         B0:   origin = 0x200,length = 0x100
         B1:   origin = 0x300,length = 0x100
         SARAM_D:origin = 0xc001,length = 0x4000
}
SECTIONS
{
      .vectors:{} > VECS PAGE 0
      .text:   {} > SARAM_P PAGE 0
      .cinit:{} > SARAM_P PAGE 0
      .switch:{} > SARAM_P PAGE 0
      .sysmem:{} > B1 PAGE 1
      .bss:   {} > B1 PAGE 1
      .stack:{} > B0 PAGE 1
}

learner123 发表于 2011-10-2 14:41:01

何谓全速?
没有加载程序吧!在SRAM中跑程序,不加载肯定不能脱机
改改cmd下到片内flash再运行

luoxue 发表于 2011-10-5 18:27:58

回复【1楼】learner123
-----------------------------------------------------------------------

加载程序了,不然单步也不会运行啊,对CMD文件 我还是一知半解,不知从何下手呢

furenren 发表于 2011-11-19 23:09:15

建议多看看书,有很多dsp书都介绍cmd
页: [1]
查看完整版本: 求助:为何LF2407A 仿真时不能全速运行