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/TMS570LS1224: .intvecs in Linker File Uninitialized When Code is Run.

Part Number: TMS570LS1224
Other Parts Discussed in Thread: HALCOGEN

Tool/software: Code Composer Studio

Hello,

I am using a TMS570LS1224 board and CCS version 7.

I am trying to run a simple program that doesn't do anything on the board in debug mode. The code compiles and runs, but I'm noticing a problem when I search "main" in the memory browser under 32-Bit Hex - TI Style. The first couple of sections in hexadecimal code, 0x00000000 through 0x00000020, remain uninitialized. It appears like this:

0x00000000 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF
0x00000010 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF

This will cause problems in future code that I run on the board if I do not resolve it. I have traced the problem to the linker file, "TMS570LS122xFlashLnk.cmd". In the Section Configuration, there is a section called".intvecs" that is not currently pointing to any code files.

/*----------------------------------------------------------------------------*/

/* TMS570LS122xFlashLnk.cmd                                                        */

/*                                                                            */

/* (c) Texas Instruments 2011, All rights reserved.                           */

/*                                                                            */

/* USER CODE BEGIN (0) */

/* USER CODE END */

/*----------------------------------------------------------------------------*/

/* Linker Settings                                                            */

--retain="*(.intvecs)"

/*----------------------------------------------------------------------------*/

/* Memory Map                                                                 */

MEMORY{

    VECTORS (X)  : origin=0x00000000 length=0x00000020

    FLASH0  (RX) : origin=0x00000020 length=0x0013FFE0

    STACKS  (RW) : origin=0x08000000 length=0x00001300

    RAM     (RW) : origin=0x08001300 length=0x0002ED00

}

/*----------------------------------------------------------------------------*/

/* Section Configuration                                                      */

SECTIONS{

    .intvecs : {} > VECTORS

    .text    : {} > FLASH0

    .const   : {} > FLASH0

    .cinit   : {} > FLASH0

    .pinit   : {} > FLASH0

    .bss     : {} > RAM

    .data    : {} > RAM

}

/*----------------------------------------------------------------------------*/

.intvecs appears black in color, while the other sections are colored purple, this further tells me that something is wrong with it. I have been looking through my computer's files (Macintosh HD > Applications > ti > ccsv7 > ccs_base > arm) for files that contain the code for those eight hexadecimal lines, but I cannot find anything that helps.

Looking through the online manuals and reference guides for the board, I have found that .intvecs should contain something like this:

"; interrupt vectors
resetEntry:
 0x00   b   _c_int00
undefEntry:
 0x04   b   undefEntry
svcEntry:
 0x08   b   svcEntry
prefetchEntry:
0x0C    b   prefetchEntry
0x10    b   _dabort
0x14   b   phantomInterrupt
0x18    ldr pc,[pc,#-0x1b0]
0x1C   ldr pc,[pc,#-0x1b0]"

I have been looking for a .c file that contains these, but I have yet to find one. Where can I find the file that contains what I need?
  • Hello Derek,

    The lines of code that you are referring to are in the sys_intvecs.asm file within the code generated by HalCoGen. It sounds like you are attempting to develop code outside of Halcogen and, if so, you would need to setup the interrupt vectors code within a file with the given section identifier. There are no restrictions to you writing your own code including the startup, but I would strongly encourage the use of Halcogen for, if nothing else, a learning tool in developing your own code (although it can be used for production purposes).