Tool/software:
Hello, I have two libs I have created successfully using C2000 Archiver (v22.6.1) : libA.lib and libB.lib
In libB.lib there is an object CmpCartridge_Public.obj containing some const tables declared in a specific sections as follows:
#pragma DATA_SECTION(CART_ENTRY_POINT,"CART_SECT_ENTRY_POINT")
const uint32_t CART_ENTRY_POINT = (uint32_t)(&CMPCARTRIDGE_G_CART_BOOT_ADDR_VAL_U32);
#pragma DATA_SECTION(c_CmpCartridge_G_CsciCartridge_s,"CART_SECT_IDENTIFICATION")
const ts_CmpCartridge_G_CartridgeSub c_CmpCartridge_G_CsciCartridge_s = { ... };
In a linker project that inludes both libraries libA.lib and libB.lib, I have created a section:
SECTIONS
{
CART_SECT :
{
COM_BS.lib<CtlBoot_CodeStart.obj> (codestart) {START(_CMPCARTRIDGE_G_CART_BOOT_ADDR_VAL_U32)}
COM_BS.lib<CmpCartridge_Public.obj> (CART_SECT_CRC32)
COM_BS.lib<CmpCartridge_Public.obj>(CART_SECT_START_ADDR)
COM_BS.lib<CmpCartridge_Public.obj>(CART_SECT_SIZE)
COM_BS.lib<CmpCartridge_Public.obj>(CART_SECT_ENTRY_POINT)
COM_BS.lib<CmpCartridge_Public.obj>(CART_SECT_IDENTIFICATION)
} > CARTRIDGE, ALIGN(2)
...
}
But I have following warning during compilation: #10068-D no matching section
normally I shall have the following in .map file:
CART_SECT
* 0 00080000 00000080
00080000 00000002 CtlBoot_CodeStart.obj (codestart)
00080002 00000002 CmpCartridge_Public.obj (CART_SECT_CRC32)
00080004 00000002 CmpCartridge_Public.obj (CART_SECT_START_ADDR)
00080006 00000002 CmpCartridge_Public.obj (CART_SECT_SIZE)
00080008 00000002 CmpCartridge_Public.obj (CART_SECT_ENTRY_POINT)
0008000a 00000076 CmpCartridge_Public.obj (CART_SECT_IDENTIFICATION)
But I get the following:
CART_SECT
* 0 00080000 00000002
00080000 00000002 COM_BS.lib : CtlBoot_CodeStart.obj (codestart)
I cannot understand why the linker cannot get the section in libB.lib ? It works with CODE_SECTION symbols, but not for DATA_SECTION ones...
Any clues from the TI experts ? I am stuck for two days now and it is a little bit frustating...
Thanks by advance for the answers.