Hi,
I am porting an application from ARM compiler V5 to ARM Compiler V6.0. I have been able to compile the application.While linking there is an issue, we are having #ifdev REV1 in thr scatter file, which is working properly in ARM Compiler V5, but the same is not working in ARM Compiler 6. Ihave done --predefine=-DREV1 while linking, but i got the below error
Error: L6229E: Scatter description C:/Projects/Xnxx/Code/SDK_ARM-V6-Final/xxxxyyy/memory_map.scat is empty.Error: L6372E: Image needs at least one load region.Not enough information to list image symbols.Not enough information to list the image map.Finished: 2 information, 4 warning and 2 error messages.
The scat file shall look like
#ifdef REV1
LR_DATA_RAM 0x20000000 NOCOMPRESS 0x39F00 { ER_DATA_RAM 0x20000000 { * (+RW, +ZI) } BSP_SERVICE_OUTPUT 0x20039F00 EMPTY 0x100 { } ARM_LIB_HEAP 0x2003A000 EMPTY 0x4000 { } ARM_LIB_STACK 0x2003E000 FILL 0xDEADBEEF 0x2000 { }}
}
#else
LR_DATA_RAM 0x20000000 NOCOMPRESS 0x35F00 { ER_DATA_RAM 0x20000000 { * (+RW, +ZI) } ARM_LIB_HEAP 0x20035F00 EMPTY 0x4000 { } BSP_SERVICE_OUTPUT 0x20039F00 EMPTY 0x100 { } ARM_LIB_STACK 0x2003A000 EMPTY 0x1FE0 { }}
#endif
Has anyone faced this issue earlier? Could anyone suggest how to overcome this issue?
Regards,
Santhosh
Yes. I have also set the preprocessor command in the scatter file, The below preprocessor command was set
#! armclang --target=arm-arm-none-eabi -march=armv7-m -E
So what happens if you get rid of all the preprocessor stuff, and just use a straight Scatter file?
If I dont use the preprocessor stuff, I got the below error
Error: L6260E: Multiple load regions with the same name (LR_DATA_RAM) are not allowed.Error: L6261E: Multiple execution regions with the same name (ER_DATA_RAM) are not allowed.Error: L6261E: Multiple execution regions with the same name (ARM_LIB_HEAP) are not allowed.Error: L6261E: Multiple execution regions with the same name (BSP_SERVICE_OUTPUT) are not allowed.Error: L6261E: Multiple execution regions with the same name (ARM_LIB_STACK) are not allowed.
So you need to fix those errors, then!
Fix the basic errors in the Scatter file before trying to add complications like preprocessing!
Santhoshkumar82 said:If I dont use the preprocessor stuff
You did make it into a valid Scatter file for just one target - didn't you ?
Hi Neil,
If I didnt add #ifdef REV1 and #else to the scatter file, I am able to compile in ARM compiler V6.
Also with the #ifdef in scatter file, I am able to compile in ARM compiler 5 toolchain, but not able to compile ARM Compiler 6.
The scatter file is for the Linker - not the compiler.
Santhoshkumar82 said:not able to compile (sic?) ARM Compiler 6
You mean you're not able to Link ?
Sorry, Yes I am not able to link. I am using the linker armlink that came with the package arm compiler(6.13).