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.

CCS 5.5, DSP-BIOS 5.42.1.09, cmd file

Other Parts Discussed in Thread: CONTROLSUITE

I have a project that needs to compile for flash using C, C++, and DSP-BIOS. I have included

DSP_2803x_Headers_BIOS.cmd

(copied from C:\ti\controlSUITE\device_support\f2803x\v127\DSP2803x_headers\cmd)

TargetBioscfg.cmd (comes along inherently) and,

F28035.cmd

(copied from C:\ti\controlSUITE\device_support\f2803x\v127\DSP2803x_common\cmd)

So, after replacing a previous user modified cmd with F28035, I get a lot of memory overlap errors. An excerpt is pasted below.

What is the "BOOT_ENTRY" used for? I see that it allocates 2 bytes.

I am going to remove all of the conflicting fields from F28035.cmd. I am viewing that as the user modified file and maintaining the DSP...BIOS.cmd in tact similar to a library header file.

Is there a .cmd file for the F28035 that is supplied by TI that plays nice with the other 2 cmd files?

Or, should the user just carve out all the conflicts as I am doing? This approach is OK?

Regards, Jim

===============================================

"../F28035.cmd", line 75: error #10264: OTP memory range overlaps existing

memory range OTP

"../F28035.cmd", line 76: error #10264: FLASHH memory range overlaps existing

memory range BOOT_ENTRY

"../F28035.cmd", line 76: error #10264: FLASHH memory range overlaps existing

memory range FLASH_ABCDEFGH

"../F28035.cmd", line 77: error #10264: FLASHG memory range overlaps existing

memory range FLASH_ABCDEFGH

"../F28035.cmd", line 78: error #10264: FLASHF memory range overlaps existing

memory range FLASH_ABCDEFGH

  • Hello again. In addition to the questions in my first post, I have a few more. I have deleted all of the offending memory overlaps from F28035.cmd.

    ------------------------------------------------------------

    But now I am getting the error:

    <Linking>

    "../F28035.cmd", line 107: error #10227-D: bad section property: "csmpasswds"

    ------------------------------------------------------------

    The command file entry is:

    SECTIONS
    {

       /* Allocate program areas: */
       .cinit              : > FLASH_ABCDEFGH      PAGE = 0
       .pinit              : > FLASH_ABCDEFGH,     PAGE = 0
       .text               : > FLASH_ABCDEFGH      PAGE = 0
       codestart           : > BEGIN_FLASH         PAGE = 0
       ramfuncs            : LOAD = FLASH_ABCDEFGH,
                             RUN = L1DPSARAM,
                             LOAD_START(_RamfuncsLoadStart),
                             LOAD_SIZE(_RamfuncsLoadSize),
                             RUN_START(_RamfuncsRunStart),

       csmpasswds          : > PASSWORDS  PAGE = 0
       csm_rsvd            : > CSM_RSVD    PAGE = 0

       /* Allocate uninitalized data sections: */
       .stack              : > L0SARAM       PAGE = 1
       .ebss               : > L2DPSARAM       PAGE = 1
       .esysmem            : > L2DPSARAM       PAGE = 1

       .reset              : > RESET,      PAGE = 0, TYPE = DSECT
       vectors             : > VECTORS     PAGE = 0, TYPE = DSECT

    }

    ------------------------------------------------------------

    Further, I am curious why I am not getting a memory overlap error here?

    And why it can be declared as PAGE1 in one cmd file and PAGE0 in another?

    Find all "0x3F7FF8", Regular expression (Perl), "<Workspace>", "*.c;*.cpp;*.h;*.asm;*.s28;*.h28;*.cmd;*.tcf"
    File C:\SFTDEV\ADS5\SynAlarmBd\App\Branch0\Common\DSP2803x_headers\DSP2803x_Headers_BIOS.cmd
      92 27:   CSM_PWL     : origin = 0x3F7FF8, length = 0x000008     /* Part of FLASHA.  CSM password locations. */
     ---> This is PAGE1
     
    File C:\SFTDEV\ADS5\SynAlarmBd\App\Branch0\Src\TargetBios.tcf
      52 39:bios.MEM.instance("PASSWORDS").base = 0x3f7ff8;

    File C:\SFTDEV\ADS5\SynAlarmBd\App\Branch0\Src\Debug\TargetBioscfg.cmd
      269 35:   PAGE 0:   PASSWORDS:  origin = 0x3f7ff8,      len = 0x8
      ---> This is PAGE0
     
    Total found: 3     Matching files: 3     Total files searched: 89

    ------------------------------------------------------------

    Regards, Jim

  • Jim,
    the current error is most likely caused by the hanging comma after RUN_START(_RamfuncsRunStart).
    As for overlay pages, C2000 linker allows that and for an explanation I'll point you to spru513.pdf, Section 8.5.7 Overlaying pages. I am not sure exatly how the loader configures hardware to load sections into different physical memory banks, but apparently it's possible. I don't know if the loader knows to complain if you actually don't have different memory banks, but if you want to know the details the toolchain forum might be the place to ask. 

  • Hi Sasha,

    OK, I can check with the tool chain forum for the overlay details.

    But, can you elaborate on the "BOOT_ENTRY" memory allocation in the .tcf file (and generated cmd file). My older DSP\BIOS 4.90 projects do not have the 2-byte memory segment.

    Jim

  • Jim,
    where is that TCF script coming from? I don't see any reference to BOOT_ENTRY in the BIOS code, so whoever created the script added that memory object on top of the memory map defined by BIOS.
    From http://www.ti.com/lit/ds/symlink/tms320f28035.pdf, I see that BOOT_ENTRY refers to the boot address when booting from FLASH, and my guess is that the memory object is defined so that a specific section can be allocated to that address.