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.

I can not get the correct boot loader table. Please help me.



Dear Sir or Madam:

I am trying and use DM642, with CCS2.2, window XP environment.  To minimize the demand for the memory, I have to strip off BIOS.  So I use the comnad line + command files for compiling, linking, hex conversion unitilities.  I use the Borland make.exe and a makefile.

The command line for the compile is         $(CCompile)  -i$(CI) -al $&.asm $&.obj,   where CCompile = ${PATH}\bin\cl6x -c -o -ms -g -mv6400+  And & will be replaced by an input file.  The command line for the linking is     

$(LINKER) $(CCOBJECT) link.cmd,  Where LINKER = ${PATH}\bin\cl6x -z    And the link.cmd contains the following items:

 radar.obj conv.obj peakFFT2048.obj peakFFT1024.obj target.obj timer.obj win.obj global.obj rs232.obj display.obj dspspl.obj serialout.obj
 cmd.obj int.obj eeprom.obj power.obj twid1024.obj wico1024.obj edma.obj  ad.obj emif.obj leddata.obj vector2.obj  (these are input object files)

-m a.map  
-c /* C link convention */
-stack 0x2000  /* system stack size */ 
-i d:\ti\c6000\cgtools\include
-l d:\ti\c6000\cgtools\lib\rts6400.lib d:\ti\c6000\cgtools\lib\dsp64x.lib

-o a.out
MEMORY
{
 CE0: o = 080000000h l = 01h
 CE2: o = 0a0000000h l = 01000000h
 CE3: o = 0b0000000h l = 01h
 VECS: o = 00000000h l = 00000500h  /* allow for 8 interrupt service routine each with 8 instructions 32 bits long. ??  */  
   CODE2: org = 0x3000  len = 0x1000  /* 20K  */
   CODE: org = 0x4000  len = 0x10000  /* 20K  */
  STACK:      org = 0x1E000 len = 0x2000  /*  FOR SYSTEM STACK */

  AD_A:       org = 0x20000 len = 0x2000 /* For sine/cosine table, 2K  * 4bytes = 8K bytes. */
  DISPLAY_DATA:       org = 0x3B800 len = 0x100 /*  */
  TWID:       org = 0x3c000 len = 0x2000 /* For sine/cosine table, 2K  * 4bytes = 8K bytes. */
  WIN_COE:    org = 0x3e000 len = 0x1000 /* Ror win coef, 512 * 4 = 2048, 2K bytes.  */
  ROM_ROOT:    org = 0x90000000 len = 0x400

}

/* SPECIFY THE SECTION ALLOCATION INTO MEMORY */
SECTIONS
{
   .text:       > CODE              /* CODE                 */
   .cinit:      > CODE              /* INITIALIZATION TABLES*/
   .const:      > CODE              /* CONSTANTS        */
   .bss:        > CODE        /*fill=0x00;  /*     */
   .data:       > CODE
   .sect "LED_DISPLAY_DATA":     > DISPLAY_DATA
   .stack:    > STACK              /* SYSTEM STACK    */
   .sect "win_coef":   > WIN_COE
   .sect "twiddler":   > TWID
   .sect "AD":   > AD_A
   .sect "vectors":     > VECS
   .sect "vector2":     > VECS
}

The hex utility use a command line

d:\ti\c6000\cgtools\bin\hex6x.exe firmware.cmd,   Where the "firmware.cmd" is as follows

a.out 
-m3                              /* MOTOROLA-S format */
-byte
-image
-zero
-boot
-bootorg 0x90000400  
/*-bootsection .boot_load 0x90000000  , But the  "-bootsection" can not be recognized.  */
/* --entry_point = 0x2860   , but the -e can not be recognized.  */
-map a.mxp /* Show the detail of the conversion process */
ROMS
{
  EPROM:  org = 0x90000000,    len = 0x20000,      memwidth = 8,    
    romwidth = 8,   /* rom device width */
    fill= 0xFFFFFFFF,             files = {a.hex}
}

The first item of the boot loader output is always the starting address of the eprom, instead of the program entry point.   (The program entry point  will be entry point after the code is booted from eprom to RAM).  I can not get the section length and section loading address as well in the a.hex output file.  Please tell me why???

 My email is andrew.jiang0@gmail.com.  Thanks.

  • Andrew Jiang1 said:
    with CCS2.2, window XP environment

    Those are some very old tools.  What is the version of the compiler?

    Andrew Jiang1 said:
    The first item of the boot loader output is always the starting address of the eprom, instead of the program entry point.

    Let's focus on this one thing.  What do you mean by boot loader output?  Do you mean the output of the hex utility?  The output of the hex utility is described in the section titled Description of the Object Formats in the C6000 assembly tools manual.  Please show what you are getting, and then show what you expect.

    Thanks and regards,

    -George