При работе с отладочной платой для МСБ «Флип-Чип» и средой CM-Lynx:
при сборке проекта в консоль выводятся предупреждения на asm файлы:
[L322] Input section …doj(.program) should have DOUBLE64 qualifier for compatibility with other sections
[L322] Input section …doj(.program) should have CHAR8 qualifier for compatibility with other sections
Используется сгенерированный при создании нового проекта ldf файл, с добавлением полей:
MEMORY { 0Code { TYPE(RAM) START(0x00000000) END(0x0000FFFF) WIDTH(32) } M2DataA { TYPE(RAM) START(0x00040000) END(0x0004FFFF) WIDTH(32) } M2DataB { TYPE(RAM) START(0x00050000) END(0x0005FFFF) WIDTH(32) } M4DataA { TYPE(RAM) START(0x00080000) END(0x0008FFFF) WIDTH(32) } M4DataB { TYPE(RAM) START(0x00090000) END(0x0009FFFF) WIDTH(32) } M6Stack { TYPE(RAM) START(0x000C0000) END(0x000CFFFF) WIDTH(32) } M6DataB { TYPE(RAM) START(0x000D0000) END(0x000DFFFF) WIDTH(32) } M8Stack { TYPE(RAM) START(0x00100000) END(0x0010FFFF) WIDTH(32) } M8DataB { TYPE(RAM) START(0x00110000) END(0x0011FFFF) WIDTH(32) } M10Heap { TYPE(RAM) START(0x00140000) END(0x0014FFFF) WIDTH(32) } M10DataB { TYPE(RAM) START(0x00150000) END(0x0015FFFF) WIDTH(32) } MS0 { TYPE(RAM) START(0x30000000) END(0x37FFFFFF) WIDTH(32) } MS1 { TYPE(RAM) START(0x38000000) END(0x3FFFFFFF) WIDTH(32) } ... } data1 { INPUT_SECTIONS( $OBJECTS(.data1*) ) } >M4DataA data2 { INPUT_SECTIONS( $OBJECTS(.data2*) ) } >M8DataB
Ответ:
Причина – в asm-файле, включенном в проект (asm_test.asm), где не прописаны размеры типов в секции. Т.е. вместо .SECTION .program; нужно явно указать .SECTION /DOUBLE64 /CHAR8 .program;
Или .SECTION /DOUBLEANY /CHARANY .program;
если размер типов не важен в данном файле.