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.

External RAM (IS61LV51216) through XINTF on TMS320F28335

Hello,

I am trying to move all my code to external ram but without any success for a while now. I managed to move some of the sections that were mapped to the on-cip ram and the program seems to run fine but when I try to move the .text or .econst it doesn't work anymore.

I thought it was because I have a function that modifies the XINTF configuration inside the main, so I commented that part out but apparently without any improvement.

When I load the code with the .text section mapped to external ram(in my case ZONE7B)  and start the CCS Debugger it opens the DSP28xxx_CodeStartBranch.asm file and points to the "LB wd_disable" line. I don't understand assembly that well or Code Composer for that matter.

For sure the external ram was working fine because I was using it to store big arrays of floats.

Could anyone help me with this?

Regards,

Lucian

6283.new.map.txt1007.DSP28xxx_CodeStartBranch.asm

F2833x_nonBIOS_flash.cmd.txt
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/*############################################################################
FILE: DSP2833x_nonBIOS_flash.cmd
DESCRIPTION: Linker allocation for all sections.
############################################################################
Author: Tim Love
Release Date: March 2008
############################################################################*/
MEMORY
{
PAGE 0: /* Program Memory */
/* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE1 for data allocation */
ZONE0 : origin = 0x004000, length = 0x001000 /* XINTF zone 0 */
RAM_L0_to_L5: origin = 0x008000, length = 0x006D00 /* on-chip RAM */
OTP : origin = 0x380400, length = 0x000400 /* on-chip OTP */
ZONE6 : origin = 0x100000, length = 0x100000 /* XINTF zone 6 */
/*ZONE7A : origin = 0x200000, length = 0x00FC00 */ /* XINTF zone 7 - program space */
FLASHH : origin = 0x300000, length = 0x008000 /* on-chip FLASH */
FLASHG : origin = 0x308000, length = 0x008000 /* on-chip FLASH */
FLASHF : origin = 0x310000, length = 0x008000 /* on-chip FLASH */
FLASHE : origin = 0x318000, length = 0x008000 /* on-chip FLASH */
FLASHD : origin = 0x320000, length = 0x008000 /* on-chip FLASH */
FLASHC : origin = 0x328000, length = 0x008000 /* on-chip FLASH */
FLASHB : origin = 0x330000, length = 0x008000 /* on-chip FLASH */
FLASHA : origin = 0x338000, length = 0x007F80 /* on-chip FLASH */
CSM_RSVD : origin = 0x33FF80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */
BEGIN_FLASH : origin = 0x33FFF6, length = 0x000002 /* Part of FLASHA. Used for "boot to Flash" bootloader mode. */
CSM_PWL : origin = 0x33FFF8, length = 0x000008 /* Part of FLASHA. CSM password locations in FLASHA */
ADC_CAL : origin = 0x380080, length = 0x000009 /* Part of TI OTP */
IQTABLES : origin = 0x3FE000, length = 0x000b50 /* IQ Math Tables in Boot ROM */
IQTABLES2 : origin = 0x3FEB50, length = 0x00008c /* IQ Math Tables in Boot ROM */
FPUTABLES : origin = 0x3FEBDC, length = 0x0006A0 /* FPU Tables in Boot ROM */
ROM : origin = 0x3FF27C, length = 0x000D44 /* Boot ROM */
RESET : origin = 0x3FFFC0, length = 0x000002 /* part of boot ROM */
VECTORS : origin = 0x3FFFC2, length = 0x00003E /* part of boot ROM */
ZONE7B : origin = 0x200000, length = 0x080000
PAGE 1 : /* Data Memory */
/* Memory (RAM/FLASH/OTP) blocks can be moved to PAGE0 for program allocation */
/* Registers remain on PAGE1 */
RAMM0 : origin = 0x000000, length = 0x000400 /* on-chip RAM block M0 */
BOOT_RSVD : origin = 0x000400, length = 0x000080 /* Part of M1, BOOT rom will use this for stack */
RAMM1 : origin = 0x000480, length = 0x000400 /* on-chip RAM block M1 */
/*RAML4 : origin = 0x00C000, length = 0x001000 */ /* on-chip RAM block L4 */
RAM_L6_to_L7: origin = 0x00ED00, length = 0x001500 /* on-chip RAM block L5 */
//RAML6 : origin = 0x00FA00, length = 0x000100 /* on-chip RAM block L6 */
//RAML7 : origin = 0x00FB00, length = 0x000500 /* on-chip RAM block L7 */
/* XINTF zone 7 - data space */
}
/**************************************************************/
/* Link all user defined sections */
/**************************************************************/
SECTIONS
{
/*** Code Security Password Locations ***/
csmpasswds : > CSM_PWL PAGE = 0
csm_rsvd : > CSM_RSVD PAGE = 0
/*** User Defined Sections ***/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • Lucian,

    were you able to execute any function out of external memory yet? The below user guide, Figure 2 shows Access flow diagram. I would suggest to put a simple test function and get that executed first instead of moving entire .text and .const. 

    You can define a function and put it in a user defined section using #PRAGMA and link that section to external memory and branch to that function from on chip RAM after XINTF is fully configured.

    www.ti.com/.../spru949d.pdf

    The code in codestartbranch.asm is your entry point code that is executed before program reaches main. This should be probably executed from on chip RAM, since your XINTF isn't configured yet.

    Hope this helps.

    Best Regards

    Santosh Athuru