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.

  • 0x9000 is writable on the F28035, but not on F28027. Are you sure you have an F28035?
  • You are wasting 0x100 words in your allocation
  • Consider using M0M1 as Page 1 alloc as VisSim does. This will give you more RAM for program/.text
  • Consider using Vissim, it will greatly speed up your development.

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

  • You are wasting 0x100 words in your allocation

Ans: even if i allocate full length i.e.

Page0:
RAML1L2L3 : origin = 0x008850, length =0x0017B0

Then also i am getting same problem....

  • Consider using M0M1 as Page 1 alloc as VisSim does. This will give you more RAM for program/.text

Ans: see my command file...

PAGE 0 : BEGIN : origin = 0x000000, length = 0x000002
RAMM0 : 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
{
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

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