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.

Compiler/TMS320F28379D: "0x3FE493 (no symbols are defined)" when program size is greater than 00002000

Part Number: TMS320F28379D
Other Parts Discussed in Thread: CONTROLSUITE

Tool/software: TI C/C++ Compiler

Hi all,

I'm getting "0x3FE493 (no symbols are defined)" when program size is greater than 00002000. It seems that there is the ESTOP0 command in my program, although I haven't explicitly added that command, so I assume that the compiler is adding the command on its own.

Since program is still in the development phase, I place the program in RAM, and the full program size is 000037B0. However, if I trim the program by removing body of two massive functions (see DO_NOT_PROGRAM_CONTROL_FUNCTIONS macro in constants.h file), the program size is 00001F0C, and the debug mode works just fine. Here is how I handle the program memory block in the linker file:

RAMGS_10_15 : origin = 0x016000, length = 0x006000
.text : > RAMGS_10_15, PAGE = 0

I've also tried with the following formulation, but it says "program will not fit into available memory", although some of the RAM sections are completely unused by the linker:

RAMGS10 : origin = 0x016000, length = 0x001000
RAMGS11 : origin = 0x017000, length = 0x001000
RAMGS12 : origin = 0x018000, length = 0x001000
RAMGS13 : origin = 0x019000, length = 0x001000
RAMGS14 : origin = 0x01A000, length = 0x001000
RAMGS15 : origin = 0x01B000, length = 0x001000
.text : >>RAMGS10 | RAMGS11 | RAMGS12 | RAMGS13 | RAMGS14 | RAMGS15,	PAGE = 0

This probably happens because one of the program blocks is larger than 0x001000. That is why I use the "packed" section RAMGS_10_15. I have also tried with increasing the stack size, but it didn't help.

Please find attached the entire project. Please modify the PATH in "Include Options" to the controlSUITE directory, which is the only external library needed to compile the project.

P.S. I use LaunchPad F28379D.

How can I fix this?

Thanks,
Marko.

proj.zip

  • can you share map file after removing those 2 functions.

    Regards
    Baskaran
  • Yes, sure, here is the map file.

    The size of the program is now 00001f14, and the program can run in the debug mode.

    4762.proj_map.zip

  • I've turned off the auto-run on debug, and I stepped through the program step-by-step. At some point I get the following message (and program breaks here):

    ???? Memory map prevented reading 0x18000@Program [code=0x20000]

    I get this for all program addresses higher than 0x18000, which confirms my initial assumption that program does not work for sizes greater than 0x2000, since the program address starts at 0x16000.

    However, when I've edited the linker to place the program at lower addresses (RAMD0-1 and RAMLS0-5 blocks), everything works just fine. Is this because of some program memory range? Can you please refer me to some documentation where I can read more about this.

  • Can you check memory configuration registers and see if they are enabled for CPU1(i believe that's the core you are using)

    GSxMSEL
    GSxACCPROT1

    refer TRM for locations of these registers.
  • You're right, I use CPU1. I programmed the device, and now I read the registers in Debug mode. All of them are 0:

    MemCfgRegs.GSxACCPROT0.all = 0x00000000;
    MemCfgRegs.GSxACCPROT1.all = 0x00000000;
    MemCfgRegs.GSxACCPROT2.all = 0x00000000;
    MemCfgRegs.GSxACCPROT3.all = 0x00000000;
    MemCfgRegs.GSxLOCK.all = 0x00000000;
    MemCfgRegs.GSxMSEL.all = 0x00000000;

  • All these configurations just look fine. Can you share the exact part number that you have.
    It may be possible that the variant you have is not having those GSRAM sections.
  • I have C2000 Delfino MCU F28379D LaunchPad™ development kit. It says in TRM that these GSRAM sections are available on F28379D devices.

    Please note that I've attached my (whole) project in the first post, you can try to program the device with that project. The only external library you need to build the program is controlSUITE, which needs to be configured in "include paths" in the project properties.