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.

Warnings in sys_link.cmd

Other Parts Discussed in Thread: TMS570LS3137, HALCOGEN

Hi,

I am TMS570LS3137 MCU to measure the pulse using freeRTOS but when i compile the code warning shows in sys_link.cmd file.

Below i explained what is the problem

Code composer version : 

Code Composer Studio

Version: 6.0.1.00040

HALCogen: 

version : 04.02.00

Warning Shows:

Description Resource Path Location Type
#10068-D no matching section sys_link.cmd /143026v1.0/143026v1.0/source line 78 C/C++ Problem
#10068-D no matching section sys_link.cmd /143026v1.0/143026v1.0/source line 77 C/C++ Problem
#10068-D no matching section sys_link.cmd /143026v1.0/143026v1.0/source line 84 C/C++ Problem
#10068-D no matching section sys_link.cmd /143026v1.0/143026v1.0/source line 85 C/C++ Problem
#10068-D no matching section sys_link.cmd /143026v1.0/143026v1.0/source line 86 C/C++ Problem
#10247-D creating output section ".sysmem" without a SECTIONS specification 143026v1.0 C/C++ Problem

sys_link.cmd file

/*----------------------------------------------------------------------------*/
/* sys_link_freeRTOS.cmd */
/* */
/*
* Copyright (C) 2009-2014 Texas Instruments Incorporated - http://www.ti.com/
*
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the
* distribution.
*
* Neither the name of Texas Instruments Incorporated nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/

/* */
/*----------------------------------------------------------------------------*/
/* USER CODE BEGIN (0) */
/* USER CODE END */
/*----------------------------------------------------------------------------*/
/* Linker Settings */

--retain="*(.intvecs)"

/* USER CODE BEGIN (1) */
/* USER CODE END */

/*----------------------------------------------------------------------------*/
/* Memory Map */

MEMORY
{
VECTORS (X) : origin=0x00000000 length=0x00000020
KERNEL (RX) : origin=0x00000020 length=0x00008000
FLASH0 (RX) : origin=0x00008020 length=0x00177FE0
FLASH1 (RX) : origin=0x00180000 length=0x00180000
STACKS (RW) : origin=0x08000000 length=0x00000800
KRAM (RW) : origin=0x08000800 length=0x00000800
RAM (RW) : origin=(0x08000800+0x00000800) length=(0x0003F800 - 0x00000800)

/* USER CODE BEGIN (2) */
/* USER CODE END */
}

/* USER CODE BEGIN (3) */
/* USER CODE END */

/*----------------------------------------------------------------------------*/
/* Section Configuration */

SECTIONS
{
.intvecs : {} > VECTORS
/* FreeRTOS Kernel in protected region of Flash */
.kernelTEXT : { sys_startup.obj(.const)
os_tasks.obj (.const:.string)
-l=rtsv7R4_T_be_v3D16_eabi.lib<auto_init.obj> (.text)
-l=rtsv7R4_T_be_v3D16_eabi.lib<copy_decompress_rle.obj> (*)
-l=rtsv7R4_T_be_v3D16_eabi.lib<cpy_tbl.obj> (*)
-l=rtsv7R4_T_be_v3D16_eabi.lib<copy_zero_init.obj> (*)
-l=rtsv7R4_T_be_v3D16_eabi.lib<copy_decompress_none.obj> (*)
-l=rtsv7R4_T_be_v3D16_eabi.lib<icall32.obj> (.text)
-l=rtsv7R4_T_be_v3D16_eabi.lib<memset32.obj> (.text)
-l=rtsv7R4_T_be_v3D16_eabi.lib<memcpy32.obj> (.text)
} > KERNEL
.cinit : {} > KERNEL
.pinit : {} > KERNEL
/* Rest of code to user mode flash region */
.text : {} > FLASH0 | FLASH1
.const : {} > FLASH0 | FLASH1
/* FreeRTOS Kernel data in protected region of RAM */
.kernelBSS : {} > KRAM
.kernelHEAP : {} > RAM
.bss : {} > RAM
.data : {} > RAM

/* USER CODE BEGIN (4) */
/* USER CODE END */
}

/* USER CODE BEGIN (5) */
/* USER CODE END */

/*----------------------------------------------------------------------------*/
/* Misc */

/* USER CODE BEGIN (6) */
/* USER CODE END */

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

Please help me

Regards,

Chethan kumar

 

  • Chethan,

    These warning indicate that the specified function to be mapped to a specific memory section are not available in your project.

    For example:

    -l=rtsv7R4_T_be_v3D16_eabi.lib<memset32.obj> (.text)
    } > KERNEL

    memset32.obj text section is asked to be placed in KERNEL memory.

    So now let me explain why we have these warning.

    Halcogen generates a default linker command file. There is no way for Halcogen to know how your code will be compiled (ARM,  Thumb2)

    On the code generator side in Code Composer Studio, you have to specify in the option for your project, which RTS library you want to use.
    Base on this selection, the linker command file will have to be updated accordingly.
    For example, let say you want to use the rtsv7R4_T_be_v3D16_eabi.lib
    (Cortex R4 V7 architecture, in Thumb2, running on a Big Endian part with VFP support)

    The linker command file will look like:

    -l=rtsv7R4_T_be_v3D16_eabi.lib<memset_t2.obj> (.text)
    -l=rtsv7R4_T_be_v3D16_eabi.lib<memcpy_t2.obj> (.text)
    } > KERNEL

    All other warning will have to be treated accordingly.
    I don't know why FreeRtos is expecting to have these function in the KERNEL memory. It will be good to ask this question on their forum.

  • Hello Jean-Marc,

    Thanks for your response.

    I wont select any library file it will take automatically "rtsv7R4_T_be_v3D16_eabi.lib" file and compiler version TI v5.1.6 in CCS v6.0.
    so everything is same but still i dont know how to solve this problem.
    Please give some solutions.

    Regards,
    Chethan kumar
  • Chethan,

    The warning you are seeing are not critical at all.
    Like I said, some can be fixed.
    I will go through all of them.

       .kernelTEXT   : { sys_startup.obj(.const)

    Right now, there is no const in the sys_startup code. If in the future we will have const, they will be mapped to the KERNEL section.

      os_tasks.obj (.const:.string)

    Right now, there is no const or string in the os_tasks code. If in the future we will have const, they will be mapped to the KERNEL section.

    -l=rtsv7R4_T_be_v3D16_eabi.lib<icall32.obj> (.text)

    Right now, there is no function call to icall32. This entry in linker command file can be remove.

    Based on your library, please modify the next 2 warning as following:

    -l=rtsv7R4_T_be_v3D16_eabi.lib<memset_t2.obj> (.text)
    -l=rtsv7R4_T_be_v3D16_eabi.lib<memcpy_t2.obj> (.text)

    The Halcogen team told me that they will clean up the linker command file for FreeRtos in the next release.

  • Thank you for your solution.


    Regards,
    chethan kumar