如图所示,该段程序中当interruptcount大于等于5000时会归零,但是可以从图中看出来,数值已经远远大于5000但是没有按照正常的情况运行,不止这一处错误,整个程序都运行的有问题,所以想请问一下大神,这个是怎么回事。程序在RAM中运行没有问题,使用FLASH下载就有问题了~
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
如图所示,该段程序中当interruptcount大于等于5000时会归零,但是可以从图中看出来,数值已经远远大于5000但是没有按照正常的情况运行,不止这一处错误,整个程序都运行的有问题,所以想请问一下大神,这个是怎么回事。程序在RAM中运行没有问题,使用FLASH下载就有问题了~
您好,Seven Han
我用的程序是通过例程修改的,cmd文件使用的是下面两个文件,没有进行过里边语句的修改,直接从controlsuite里下载的:
DSP2803x_Headers_nonBIOS.cmd
F28035.cmd
拷贝到Flash里的语句如下:
#pragma CODE_SECTION(MainISR, "ramfuncs");
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
InitFlash();
例程里好像就是这么写的~
您好,
从您上面的描述,还是不能够一眼看出问题在哪,初步猜测应该是flash搬移到ram的问题。
或者您可以把工程代码贴上吗?
您好 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
}