Hello,
I've a project which are started with arm-none-eabi-gcc and added in the last time the ARMCC. The linker configuration can't easy converted.
At the moment I search for a solution to define in the scatter file like the gcc linker file. This is used for the MPU configuration.
Here the content of my gcc linker file:
/* table of MPU sections */
.table.sections :
{
. = ALIGN(4);
LKF_SECTION_TABLE_START = .;
LONG (__sec0_start)
LONG (__sec0_end)
LKF_SECTION_TABLE_END = .;
} > FLASH
/* MPU section 0 */
.sec0.data ALIGN(0x400)
__sec0_start = .;
*(.sec0_init)
*sec0*.o(.data)
} > SRAM
.sec0.bss (NOLOAD) :
*(.sec0)
*sec0*.o(.bss COMMON)
. = ALIGN(0x400);
__sec0_end = .;
}
Now I need a solution for define the .table.sections in the ARMCC scatter file. The section is defined with:
sec0 AlignExpr(+0, 1024) { .ANY(.sec0.data) sec0*.o(+RW, +ZI) }
With the gcc can I read the .table.sectio with: extern uint32_t LKF_SECTION_TABLE_START[];
The using of the $$ variables in the C source code from the armlink is not so good. Have everybody a solution for definition of this table in the scatter file?
Thanks four Your help,
Bernd
Thanks Carl. I hope that I become here a answer.
A further point where I have found no solution so far is: I have same variables, which are needet beetween more applications in the FLASH, for example FLASH boot loader and checksum tool. This variable shall not initialise during the compalation. This make a tool directly in the HEX file. Now with other toolchains I have only defined in the linker the address of this variables and in a header file all variables as extern.
Her a example from the arm-none-eabi-gcc:
h file:
extern const uint32_t TestVariant;
ld file:
MEMORY
....
FLASH_HANDSHAKE_VARIABLES (ro) : ORIGIN = 0x80001000, LENGTH = 0x100
.handshake_variables :
PROVIDE (TestVariant = 0x00000000);
} > FLASH_HANDSHAKE_VARIABLES
Have anybody a solution for this?
Thanks for You help,