AnsweredAssumed Answered

Linker file for Library

Question asked by Uday Thatte on Sep 7, 2019
Latest reply on Sep 13, 2019 by Uday Thatte

I am using CW10.3 for MK20xx.

I have created a library where in specific code is to be placed in RAM.


Before creating the library I had a test program created using PE and have used the code as follows


Header file contents

#pragma define_section relocate_code ".relocate_code" ".relocate_code" ".relocate_code" far_abs RW
#define __relocate_code__ __declspec(relocate_code)



UINT32 FlashCommandSequence (PFLASH_SSD_CONFIG PSSDConfig, \
UINT8 index, \
UINT8* pCommandArray)


. . . .



and the linker file ProcessorExpert.Lcf contains


KEEP_SECTION { .vectortable }
KEEP_SECTION { .cfmconfig }

KEEP_SECTION { .relocate_code }

m_interrupts (RX) : ORIGIN = 0x00004000, LENGTH = 0x000001E0
m_text (RX) : ORIGIN = 0x00004400, LENGTH = 0x0003AC00
m_data (RW) : ORIGIN = 0x1FFF0000, LENGTH = 0x00010000
m_data_20000000 (RW) : ORIGIN = 0x20000000, LENGTH = 0x00010000
m_cfmprotrom (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010
m_programbuff (RW) : ORIGIN = 0x14000000, LENGTH = 0x00001000





.relocate_code :
* (.relocate_code)
. = ALIGN (0x4);
} > m_programbuff


This worked perfectly all right for me.



After testing is done I created library (*.a) where this "FlashCommandSequence" function is used internally by a library function.

As there is no LCF file in the library project. I am wondering how to place the code in RAM so that when this library is linked to another project by me end user the code is placed in RAM.