如图所示,该段程序中当interruptcount大于等于5000时会归零,但是可以从图中看出来,数值已经远远大于5000但是没有按照正常的情况运行,不止这一处错误,整个程序都运行的有问题,所以想请问一下大神,这个是怎么回事。程序在RAM中运行没有问题,使用FLASH下载就有问题了~
Seven Han:
请问您用的ti例程吗还是?
下载flash调试使用的cmd文件呢?
如图所示,该段程序中当interruptcount大于等于5000时会归零,但是可以从图中看出来,数值已经远远大于5000但是没有按照正常的情况运行,不止这一处错误,整个程序都运行的有问题,所以想请问一下大神,这个是怎么回事。程序在RAM中运行没有问题,使用FLASH下载就有问题了~
user4839965:
回复 Seven Han:
您好,Seven Han
我用的程序是通过例程修改的,cmd文件使用的是下面两个文件,没有进行过里边语句的修改,直接从controlsuite里下载的:
DSP2803x_Headers_nonBIOS.cmd
F28035.cmd
拷贝到Flash里的语句如下:
#pragma CODE_SECTION(MainISR, "ramfuncs");
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
InitFlash();
例程里好像就是这么写的~
如图所示,该段程序中当interruptcount大于等于5000时会归零,但是可以从图中看出来,数值已经远远大于5000但是没有按照正常的情况运行,不止这一处错误,整个程序都运行的有问题,所以想请问一下大神,这个是怎么回事。程序在RAM中运行没有问题,使用FLASH下载就有问题了~
Seven Han:
回复 user4839965:
您好,
从您上面的描述,还是不能够一眼看出问题在哪,初步猜测应该是flash搬移到ram的问题。
或者您可以把工程代码贴上吗?
如图所示,该段程序中当interruptcount大于等于5000时会归零,但是可以从图中看出来,数值已经远远大于5000但是没有按照正常的情况运行,不止这一处错误,整个程序都运行的有问题,所以想请问一下大神,这个是怎么回事。程序在RAM中运行没有问题,使用FLASH下载就有问题了~
user4839965:
回复 Seven Han:
您好,Seven Han
附件为我的工程和库文件,麻烦您了,感谢您在百忙之中抽出时间帮我解决问题~
如图所示,该段程序中当interruptcount大于等于5000时会归零,但是可以从图中看出来,数值已经远远大于5000但是没有按照正常的情况运行,不止这一处错误,整个程序都运行的有问题,所以想请问一下大神,这个是怎么回事。程序在RAM中运行没有问题,使用FLASH下载就有问题了~
user4839965:
回复 Seven Han:
您好 SEVEN HAN:
下面是我F28035.cmd文件的代码,我本来上传了整个工程好像没有通过审核。您看看贴这些代码可以判断出问题吗?
感谢您在百忙之中抽出时间帮我解答问题~
MEMORY{ PAGE 0: RAML0 : origin = 0x008000, length = 0x000800 RAML1 : origin = 0x008800, length = 0x000400 OTP : origin = 0x3D7800, length = 0x000400 FLASHH : origin = 0x3E8000, length = 0x002000 FLASHG : origin = 0x3EA000, length = 0x002000 FLASHF : origin = 0x3EC000, length = 0x002000 FLASHE : origin = 0x3EE000, length = 0x002000 FLASHD : origin = 0x3F0000, length = 0x002000 FLASHC : origin = 0x3F2000, length = 0x002000 FLASHA : origin = 0x3F6000, length = 0x001F80 CSM_RSVD : origin = 0x3F7F80, length = 0x000076 BEGIN : origin = 0x3F7FF6, length = 0x000002 CSM_PWL_P0 : origin = 0x3F7FF8, length = 0x000008
IQTABLES : origin = 0x3FE000, length = 0x000B50 IQTABLES2 : origin = 0x3FEB50, length = 0x00008C IQTABLES3 : origin = 0x3FEBDC, length = 0x0000AA
ROM : origin = 0x3FF27C, length = 0x000D44 RESET : origin = 0x3FFFC0, length = 0x000002 VECTORS : origin = 0x3FFFC2, length = 0x00003E
PAGE 1 : BOOT_RSVD : origin = 0x000000, length = 0x000050 RAMM0 : origin = 0x000050, length = 0x0003B0 RAMM1 : origin = 0x000400, length = 0x000400 RAML2 : origin = 0x008C00, length = 0x000400 RAML3 : origin = 0x009000, length = 0x001000 FLASHB : origin = 0x3F4000, length = 0x002000
}
SECTIONS{
.cinit : > FLASHA PAGE = 0 .pinit : > FLASHA, PAGE = 0 .text : > FLASHA PAGE = 0 codestart : > BEGIN PAGE = 0 ramfuncs : LOAD = FLASHA, RUN = RAML0, LOAD_START(_RamfuncsLoadStart), LOAD_END(_RamfuncsLoadEnd), RUN_START(_RamfuncsRunStart), PAGE = 0
csmpasswds : > CSM_PWL_P0 PAGE = 0 csm_rsvd : > CSM_RSVD PAGE = 0
.stack : > RAMM0 PAGE = 1 .ebss : > RAML2 PAGE = 1 .esysmem : > RAML2 PAGE = 1
.econst : > FLASHA PAGE = 0 .switch : > FLASHA PAGE = 0
IQmath : > FLASHA PAGE = 0 IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD
.reset : > RESET, PAGE = 0, TYPE = DSECT vectors : > VECTORS PAGE = 0, TYPE = DSECT
}