Гугль по коду ошибки дает это:
Код
L6971E
<objname>(<secname>) type <type> incompatible with <prevobj>(<prevname>) type <prevtype> in er <ername>.
You might see this message when placing __at sections with a scatter file. For example, the following code in main.c and the related scatter file gives this error:
int variable __attribute__((at(0x200000)));
LR1 0x0000 0x20000
{
ER1 0x0 0x2000
{
*(+RO)
}
ER2 0x8000 0x2000
{
main.o
}
RAM 0x200000 (0x1FF00-0x2000)
{
*(+RW, +ZI)
}
}
The variable has the type ZI, and the linker attempts to place it at address 0x200000. However, this address is reserved for RW sections by the scatter file. This produces the error:
Error: L6971E: stdio_streams.o(.data) type RW incompatible with main.o(.ARM.__AT_0x00200000) type ZI in er RAM.
To fix this change the address in your source code, for example:
int variable __attribute__((at(0x210000)));
Искал по коду ошибки
тут.