how to use large memory(0x001700) of tms320f28035
Hi... I have an application code with 2805_RAM_Lnk.Cmd file. I allocated like this...
Page0:
RAML1L2L3 : origin = 0x008850, length =0x001700
Page1:
RAML0 : origin = 0x008000, length = 0x000800
.text : > RAML1L2L3, PAGE = 0
.ebss : > RAML0, PAGE = 1
.econst : > RAML0, PAGE = 1
.esysmem : > RAML0, PAGE = 1
while loading .out file i am getting following error...
"Load failed" with pop up message
and
"Trouble Writing Memory Block at 0x8850 on Page 0 of Length 0x1336: Cannot access memory address 0x9000"
Kindly help me to come out from this issue....
We have no such problems with VisSim
I suggest you use VisSim or contact TI tech support. VisSim has no problems with CCS v3.3 and F28035. In fact, we can run 2 concurrent sensorless field oriented PMSM motor controls with 4 200-element signal buffers all in RAM on the F28035.
Ans: Yes ,i am using
Ans: Yes ,i am using CCS3.3.....
Looks like you're not using VisSim
Hi Balaji, From your .cmd file it looks like you aren't using VisSim. In any case, there are several problems that I see.
Ans: Yes ,i am using
Ans: Yes ,i am using CCS3.3.....
* 0x9000 is writable on the F28035, but not on F28027. Are you sure you have an F28035?
Ans: Yes...I have an TMS320F28035
Ans: even if i allocate full length i.e.
Page0:RAML1L2L3 : origin = 0x008850, length =0x0017B0
Then also i am getting same problem....
Ans: see my command file...
PAGE 0 : BEGIN : origin = 0x000000, length = 0x000002RAMM0 : origin = 0x000050, length = 0x0003B0
PRAML0L1L2L3 : origin = 0x008000, length = 0x002000
RESET : origin = 0x3FFFC0, length = 0x000002
IQTABLES : origin = 0x3FE000, length = 0x000B50
IQTABLES2 : origin = 0x3FEB50, length = 0x00008C
IQTABLES3 : origin = 0x3FEBDC, length = 0x0000AA
BOOTROM : origin = 0x3FF27C, length = 0x000D44
PAGE 1 :
BOOT_RSVD : origin = 0x000002, length = 0x00004E
RAMM1 : origin = 0x000480, length = 0x000380
DRAML0 : origin = 0x3F8000, length = 0x000800
}
SECTIONS
error:Trouble Writing Memory Block at 0x8000 on Page 0 of Length 0x1331: Cannot access memory address 0x9000{
codestart : > BEGIN, PAGE = 0
ramfuncs : > RAMM0 PAGE = 0
.text : > PRAML0L1L2L3, PAGE = 0
.cinit : > RAMM0, PAGE = 0
.pinit : > RAMM0, PAGE = 0
.switch : > RAMM0, PAGE = 0
.reset : > RESET, PAGE = 0, TYPE = DSECT
.stack : > RAMM1, PAGE = 1
.econst : > RAML2, PAGE = 1
.ebss : > DRAML0, PAGE = 1
.econst : > DRAML0, PAGE = 1
.esysmem : > DRAML0, PAGE = 1
IQmath : > PRAML0L1L2L3, PAGE = 0
IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD
}
Your problem is two-fold
1) You should be using VisSim, then you would not have this problem
2) You are using DRAMLO at origin 0x3F8000, but this is a dual mapped memory that overlaps PRAML0L1L2L3 at origin = 0x008000
I modified command file....again facing same problem
PAGE 0 :
BEGIN : origin = 0x000000, length = 0x000002
RAMM0 : origin = 0x000050, length = 0x0003B0
PRAML0L1L2L3 : origin = 0x008000, length = 0x001700
RESET : origin = 0x3FFFC0, length = 0x000002
IQTABLES : origin = 0x3FE000, length = 0x000B50
IQTABLES2 : origin = 0x3FEB50, length = 0x00008C
IQTABLES3 : origin = 0x3FEBDC, length = 0x0000AA
BOOTROM : origin = 0x3FF27C, length = 0x000D44
PAGE 1 :
BOOT_RSVD : origin = 0x000002, length = 0x00004E
RAMM1 : origin = 0x000480, length = 0x000380
DRAML0 : origin = 0x009800, length = 0x000800
}
SECTIONS { codestart : > BEGIN, PAGE = 0
ramfuncs : > RAMM0 PAGE = 0
.text : > PRAML0L1L2L3, PAGE = 0
.cinit : > RAMM0, PAGE = 0
.pinit : > RAMM0, PAGE = 0
.switch : > RAMM0, PAGE = 0
.reset : > RESET, PAGE = 0, TYPE = DSECT
.stack : > RAMM1, PAGE = 1
.econst : > RAML2, PAGE = 1
.ebss : > DRAML0, PAGE = 1
.econst : > DRAML0, PAGE = 1
.esysmem : > DRAML0, PAGE = 1
IQmath : > PRAML0L1L2L3, PAGE = 0
IQmathTables : > IQTABLES, PAGE = 0, TYPE = NOLOAD
}
error:Trouble Writing Memory Block at 0x8000 on Page 0 of Length 0x1331: Cannot access memory address 0x9000